chmod命令通过数字法或字母法修改文件权限,数字法用三位八进制数(如644、755)批量设定三类用户权限,字母法(如u+w、go-w)精准增删权限;目录执行位(x)表示可进入而非运行,递归操作需谨慎。

chmod命令修改文件权限,核心是控制“谁”能对文件“做什么”。数字法适合快速批量设置,字母法适合精准增删某类权限,两者本质相通,只是表达方式不同。
数字法:用三位八进制数一次定权
每位数字对应一类用户(所有者u / 所属组g / 其他o),每位的值是r、w、x权限值之和:r=4、w=2、x=1。例如644表示:所有者可读写(4+2=6)、所属组仅可读(4)、其他用户仅可读(4)。
- 常见组合直接记:600(仅所有者读写)、644(标准文本文件)、755(常用可执行文件或目录)、700(仅所有者全权)
- 修改单个文件:`chmod 644 report.txt`
- 批量处理同类型文件:`chmod 600 *.key`(当前目录所有.key文件设为仅所有者读写)
- 递归修改整个目录:`chmod -R 750 /home/user/project`(目录及所有子项,所有者全权、组可读可执行、其他人无权)
字母法:按需增删,不扰其他权限
格式为 `chmod [用户][操作符][权限] 文件名`。用户用u/g/o/a,操作符用+/-/=,权限用r/w/x。它不覆盖原有权限,只做局部调整,更安全灵活。
- 给所有者加写权限:`chmod u+w config.conf`(解除只读状态)
- 移除组和其他人的写权限:`chmod go-w notes.md`(防误改)
- 同时设不同权限:`chmod u=rw,g=r,o=`(所有者读写、组只读、其他人无任何权限)
- 为所有人加执行权:`chmod a+x script.sh`(等价于`chmod +x script.sh`)
目录权限要特别注意执行位(x)
对目录来说,x权限不是“运行”,而是“进入”和“访问子项”的前提。没有x,即使有r也看不到内容,有w也无法创建或删除文件。
- 设目录可读可写可进入:`chmod 755 mydir`(所有者rwx、组r-x、其他r-x)
- 递归设目录树,自动识别并加x给目录、不加x给普通文件:`chmod -R u+rwX,go+rX /data`(大写X是智能执行位)
- 若已用`chmod -R 644 dir/`导致无法cd进入,需单独补x:`chmod -R u+x dir/`
验证与避坑提醒
执行后用`ls -l filename`查看权限是否生效。注意:只有文件所有者或root才能修改权限;数字法会完全重置该位置权限,字母法+/-更稳妥;递归操作前建议先备份或确认路径无误。

















