chmod符号法通过“用户+操作+权限”三要素直观修改权限,格式为chmod 用户[权限] 文件名,支持u/g/o/a用户类、+/-/=操作符及r/w/x权限位,适合日常安全加固与功能开通。

Linux 运维中用 chmod 符号法修改权限,核心是“谁(用户类)+ 怎么改(操作符)+ 改什么(权限)”,不用记数字,直观、可读性强,适合日常运维快速调整。
符号法三要素:用户、操作、权限
必须同时指定这三部分,格式统一为:chmod [用户][操作][权限] 文件名
- 用户(who):u(所有者)、g(所属组)、o(其他用户)、a(所有人,等价于 ugo)
- 操作(operation):+(添加)、-(移除)、=(精确设置,覆盖原有)
- 权限(permission):r(读)、w(写)、x(执行);多个权限可连写,如 rx、wx
常用运维场景与写法
实际工作中,多数操作围绕安全加固或功能开通,以下都是高频用例:
- 给脚本文件加执行权(让 owner 能运行):
chmod u+x deploy.sh - 禁止组内成员误删/改配置文件:
chmod g-w config.conf - 临时开放目录给协作组访问(进目录 + 列内容):
chmod g+rx project_dir/ - 撤回其他人对敏感日志的读取权:
chmod o-r access.log - 一键锁定文件——仅 owner 可读写,组和其他人彻底无权:
chmod go= file.txt
组合操作与简写技巧
一次命令可处理多类用户,用逗号分隔,避免重复调用:
- owner 加执行、group 加读、others 移除写:
chmod u+x,g+r,o-w script.py - 所有人统一加读权限(比 ugo+r 更简洁):
chmod a+r README.md - 清空 group 和 others 的所有权限(留 owner 原权限不变):
chmod go= dir/
注意边界与常见误区
符号法灵活,但几个细节不注意容易出错:
-
= 是覆盖,不是叠加:比如
chmod g=rw file会把 group 权限设为 rw,不管之前有没有 x - 目录的 x 权限 = 可进入:没有 x,即使有 r 也无法 cd 进入或访问子项;常漏加导致“Permission denied”
-
不递归影响子项:默认只改目标文件/目录本身。要批量改子项,加
-R(慎用于目录,避免误开敏感文件) -
查看当前权限用 ls -l:输出如
-rw-r--r--,对应 owner/group/others 三组,每组三位,便于核对修改结果











