权限基础概念
Linux 中每个文件/目录有三类权限主体:
- 用户 (u):文件所有者
- 组 (g):文件所属用户组
- 其他 (o):既非所有者也非组成员的用户
每类主体可分配三种权限:
- 读 (r):查看文件内容 / 列出目录内容
- 写 (w):修改文件 / 在目录中创建/删除文件
- 执行 (x):运行程序 / 进入目录
通过 ls -l
查看权限(如 -rwxr--r--
):
- 首字符 表示文件,
d
表示目录 - 后续 9 位分三组:
用户|组|其他
的权限(例:rwx
= 读+写+执行)
chmod 的两种设置方式
符号模式(直观)
语法:chmod [主体][操作符][权限] 文件名
- 主体:
u
(用户)、g
(组)、o
(其他)、a
(全部) - 操作符:(添加)、(移除)、(精确设置)
- 权限:
r
、w
、x
示例:
chmod u+x script.sh # 给所有者添加执行权限 chmod g-w file.txt # 移除组的写权限 chmod a=rw config.cfg # 所有人仅设读写权限(无执行) chmod o-rx /data/ # 禁止其他用户读/执行目录
数字模式(高效)
用三位八进制数表示权限组合:
- 4 = 读(r)
- 2 = 写(w)
- 1 = 执行(x)
将三类主体的权限值相加:
| 权限 | 计算 | 数字 |
|———–|——|——|
| rwx
| 4+2+1 | 7 |
| rw-
| 4+2+0 | 6 |
| r-x
| 4+0+1 | 5 |
| r--
| 4+0+0 | 4 |
语法:chmod [用户][组][其他] 文件名
示例:
chmod 755 script.sh # 用户:rwx,组/其他:r-x chmod 644 file.txt # 用户:rw-,组/其他:r-- chmod 700 ~/secret/ # 仅用户可读写执行,组/其他无权限
关键选项与高级用法
- 递归操作(目录下所有文件生效):
chmod -R 755 /var/www/
- 参照文件权限:
chmod --reference=source.txt target.txt
(复制源文件权限) - 详细模式(显示修改过程):
chmod -v 644 *.log
- 静默模式(不显示错误):
chmod -f o+w temp.file
典型场景示例
- 可执行脚本:
chmod u+x backup.sh
→ 允许所有者运行脚本 - 私有目录:
chmod 700 personal/
→ 仅所有者可访问 - 共享文件(组协作):
chmod 775 team_project/
→ 所有者与组可编辑,其他用户只读 - 配置文件(防误改):
chmod 444 nginx.conf
→ 所有用户只读(需sudo
修改) - Web目录安全:
chmod 755 public_html/
→ 用户完全控制,其他用户仅读/执行
注意事项与常见错误
- 目录执行权限:
- 无
x
权限无法cd
进入目录,即使有r
权限。 - 目录需同时设
rx
才能浏览内容(如chmod 755 /web/
)。
- 无
- 权限继承:
- 新建文件默认权限受
umask
影响(如umask 022
时新建文件权限为644
)。
- 新建文件默认权限受
- 危险操作:
- 避免
chmod 777
(完全开放),易导致安全漏洞。 - 递归修改(
-R
)前确认路径,防止误改系统文件。
- 避免
- 权限不足:
- 修改系统文件需
sudo
提权(如sudo chmod 600 /etc/ssh/sshd_config
)。
- 修改系统文件需
chmod
是管理文件访问的核心工具,理解 rwx
含义和数字转换逻辑是关键,始终遵循最小权限原则(仅分配必要权限),结合 -R
选项谨慎操作,通过 ls -l
验证结果,确保系统安全与功能正常。
引用说明参考 Linux 官方手册(
man chmod
)、GNU Coreutils 文档及 Filesystem Hierarchy Standard (FHS) 标准,权限模型遵循 POSIX 规范,适用于主流 Linux 发行版(Ubuntu/CentOS等)及 Unix-like 系统。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7447.html