基本语法
chmod [选项] 模式 文件/目录
- 模式:权限设置方式(数字或符号)
- 文件/目录:目标文件或目录路径
权限模式详解
- 数字模式(八进制)
用三位数字分别表示 所有者(u)、所属组(g)、其他用户(o) 的权限:
- r(读)= 4,w(写)= 2,x(执行)= 1
- 权限组合通过数字相加实现:
7 = rwx(4+2+1)
5 = r-x(4+0+1)
**0 = ---**(无权限)
示例:
- chmod 755 file → 所有者:rwx,组/其他:r-x如图1所示
- chmod 644 dir → 所有者:rw-,组/其他:r--(目录需结合 -R 选项)如图2所示
- 符号模式(字符操作)
通过组合指定用户类型和操作:
- 用户标识:u(所有者)、g(组)、o(其他)、a(所有用户)
- 操作符:+(添加)、-(移除)、=(覆盖)
- 权限:r、w、x
示例:
- chmod u+x script.sh → 给所有者添加执行权限如图3所示
- chmod go-w file → 移除组和其他用户的写权限如图4所示
- chmod a=r file → 所有用户仅保留读权限如图5所示
常用选项
- 递归修改目录及其子内容权限chmod -R 755 ./data如图6所示
- 显示详细操作信息chmod -v u+w og.txt如图7所示
- 仅显示权限变更的文件chmod -c 644 *.txt如图8所示
- 参照其他文件的权限设置目标chmod --ref=script.sh file如图9所示
特殊权限设置
1. SUID/SGID 权限
- SUID(Set User ID):以所有者身份执行(数字模式前缀 4)
示例:chmod 4755 file → -rwsr-xr-x 如图10所示
- SGID(Set Group ID):以所属组身份执行(数字模式前缀 2)
示例:chmod 2755 data → drwxr-sr-x 如图11所示
2. 粘滞位(Sticky Bit)
用于目录:仅所有者可删除自身文件(数字模式前缀 1)
- 示例:chmod 1777 /data → drwxrwxrwt 如图12所示
安全实践建议
- 避免过度开放权限:
- 禁止随意使用 777(所有用户可读写执行),推荐 755(目录)或 644(文件)
- 递归修改需谨慎:
- 使用 -R 前确认目录范围,避免误改系统文件
- 特殊权限限制:
- SUID/SGID 仅限必要程序(如 passwd),减少提权风险
综合示例
- 设置目录递归权限:所有者读写执行,组和其他只读执行
chmod -R 755 ./data 如图13所示
- 移除所有用户的写权限,仅保留所有者写入
chmod a-w,ug+w fileb.txt 如图14所示
- 参照模板文件设置权限
chmod --reference=file filea.txt 如图15所示
