Linux 文件权限 (rwx) 详解
1. 权限基础
权限以三种身份区分:
- 用户 (User):文件所有者
- 组 (Group):与所有者同属一个组的用户
- 其他 (Others):除用户和组之外的所有用户
权限表示通常为rwx的形式,每种权限对应一个字符:
- r (read):读取权限,查看文件内容或列出目录
- w (write):写入权限,修改文件或在目录中添加/删除文件
- x (execute):执行权限,运行脚本或进入目录
Red Hat 官方介绍文档:https://www.redhat.com/en/blog/linux-file-permissions-explained
2. 权限表示方法
权限表示可以是符号表示法和数字表示法:
(1) 符号表示法
例如:rwxr-xr--
- rwx:用户权限 (读、写、执行)
- r-x:组权限 (读、执行)
- r–:其他权限 (读)
(2) 数字表示法
通过三位八进制数字表示:
- 4:读 ®
- 2:写 (w)
- 1:执行 (x)
- 0:无权限 (-)
组合示例:
rwx
= 4 + 2 + 1 = 7rw-
= 4 + 2 + 0 = 6r--
= 4 + 0 + 0 = 4---
= 0 + 0 + 0 = 0
一个完整权限例如:-rwxr-xr--
等价于 754。
3. 修改权限命令
(1) 使用 chmod 命令
-
符号法:
chmod u+x file.txt # 给用户增加执行权限 chmod g-w file.txt # 去除组的写权限 chmod o=r file.txt # 设置其他用户只读权限
-
数字法:
chmod 754 file.txt # 设置权限为 rwxr-xr--
(2) 修改所有者和组
-
chown:修改文件所有者
chown user file.txt
-
chgrp:修改文件所属组
chgrp group file.txt
4. 权限应用场景
-
网站目录权限:
- 网站根目录:
755
(所有者完全权限,其他只读) - 配置文件:
644
(所有者可读写,其他只读)
- 网站根目录:
-
脚本文件权限:
- 执行脚本:
744
(所有者读写执行,其他只读)
- 执行脚本:
5. 权限陷阱及注意事项
-
过度权限:设置
777
可能导致安全隐患,谨慎使用。 -
权限继承:子目录可能继承父目录权限,使用
umask
管理默认权限。 -
特殊权限:
- SUID:设置用户 ID
- SGID:设置组 ID
- Sticky Bit:仅拥有者可删除文件
设置示例:
chmod u+s script.sh # 设置 SUID
chmod g+s dir/ # 设置 SGID
chmod +t /tmp # 设置 Sticky Bit