chmod命令通过数字法(如755、644)或字母法(如u+x、g-w)修改文件权限,核心是理解用户类别(u/g/o/a)、操作符(+/-/=)和权限位(r=4,w=2,x=1),配合-r等选项实现递归或批量设置。

chmod命令修改文件读写权限,核心在于理解“谁(用户类别)+做什么(操作符)+什么权限(r/w/x)”,或用数字把每类用户的权限加总成三位数。只要搞清 r=4、w=2、x=1 这个换算关系,再分清 u/g/o 的作用范围,改权限就不是难事。
数字法:三组八进制数,一步到位设全权限
数字法用三位八进制数(如644、755)表示所有者、所属组、其他用户的权限组合,每位是对应用户类别的 r+w+x 值之和。
- 记牢基础换算:r=4,w=2,x=1,- = 0;组合如 rw-=4+2+0=6,r-x=4+0+1=5,rwx=7
-
常见设定举例:
•chmod 644 file.txt→ 所有者可读写(6),组和其他仅可读(4)
•chmod 755 script.sh→ 所有者全权(7),组和其他可读可执行(5)
•chmod 600 private.key→ 仅所有者可读写(6),组和其他无任何权限(0) -
批量与递归更高效:
•chmod 644 *.conf统一设置当前目录下所有.conf文件
•chmod -R 750 /var/www递归设置目录及全部子项:所有者全权,组可读可执行,其他人无权
字母法:按需增删,不覆盖原有权限
字母法用 u/g/o/a 指定用户类别,+/-/= 控制操作方式,r/w/x 明确权限类型,适合局部调整或临时修复。
-
基本语法结构:
chmod [u|g|o|a][+|-|=][r|w|x] 文件名
例如chmod u+w doc.md表示只给所有者加写权限,不影响组和其他人的现有权限 -
常用组合场景:
• 解除只读:chmod u+w file.log
• 禁止组写入:chmod g-w config.ini
• 同时操作多类用户:chmod u+x,g+rx,o-rw backup.sh
• 清空并重设:chmod a=r file.txt(所有人仅可读) -
注意细节:
•=是覆盖式设定,会清除未明确列出的权限
•a等价于ugo,比如chmod a+x和chmod ugo+x效果相同
• 多组规则可用逗号分隔,如chmod u+w,g-x,o=r file
验证与安全提醒
改完权限后,用 ls -l 文件名 查看结果是否符合预期。显示形如 -rw-r--r--,前三位对应所有者,中间三位是组,末三位是其他人。
- 只有文件所有者或 root 用户才能修改该文件权限
- 对目录设写权限(w)意味着可在其中创建/删除文件;设执行权限(x)才允许
cd进入 - 敏感文件(如私钥、配置)慎用 777 或 a+w,避免越权风险











