Linux 之 chmod 命令使用说明
Linux chmod命令使用说明
概述
chmod(change mode)命令用于更改文件或目录的访问权限。在Linux系统中,每个文件和目录都有一组权限,决定了用户对其的访问能力。
权限表示法
1. 符号表示法
权限由三组字符表示:
- r (read) - 读取权限
- w (write) - 写入权限
- x (execute) - 执行权限
- - - 无权限
2. 用户类别
- u - 文件所有者 (user)
- g - 所属组 (group)
- o - 其他用户 (others)
- a - 所有用户 (all)
3. 八进制表示法
每个权限对应一个数值:
- r = 4
- w = 2
- x = 1
将这些数值相加得到八进制权限值:
- 7 = 4+2+1 (rwx)
- 6 = 4+2 (rw-)
- 5 = 4+1 (r-x)
- 4 = 4 (r--)
基本语法
chmod [选项] 权限 文件/目录
使用示例
符号模式示例
# 给文件所有者添加执行权限
chmod u+x filename
# 移除所属组的写入权限
chmod g-w filename
# 设置其他用户只有读取权限
chmod o=r filename
# 给所有用户添加读取权限
chmod a+r filename
# 同时设置多个权限
chmod u+rwx,g+rx,o+r filename
八进制模式示例
# 设置权限为:所有者读写执行,组读写,其他只读
chmod 764 filename
# 设置权限为:所有者读写执行,组和其他只读执行
chmod 755 filename
# 设置权限为:所有者读写,组和其他只读
chmod 644 filename
# 设置目录权限为:所有者全部权限,组和其他只读执行
chmod 755 directoryname
常用权限组合
| 八进制 | 符号 | 含义 | 适用场景 |
|---|---|---|---|
| 777 | rwxrwxrwx | 所有人所有权限 | 测试环境 |
| 755 | rwxr-xr-x | 所有者全权限,其他只读执行 | 可执行文件 |
| 644 | rw-r--r-- | 所有者读写,其他只读 | 普通文件 |
| 600 | rw------- | 仅所有者可读写 | 敏感文件 |
| 700 | rwx------ | 仅所有者可访问 | 私有目录 |
递归修改权限
# 递归修改目录及其内容的权限
chmod -R 755 directoryname
# 只修改目录本身的权限,不影响内容
chmod 755 directoryname
特殊权限
特殊权限位
- SUID (Set User ID): 4xxx - 以文件所有者身份执行
- SGID (Set Group ID): 2xxx - 以文件所属组身份执行
- Sticky Bit: 1xxx - 仅文件所有者能删除目录中的文件
# 设置SUID权限
chmod 4755 filename
# 设置SGID权限
chmod 2755 filename
# 设置Sticky Bit
chmod 1755 directoryname
实际应用示例
1. 网站文件权限设置
# 设置网站文件权限
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
2. 脚本文件权限
# 使脚本可执行
chmod +x script.sh
chmod 755 script.sh
3. 配置文件权限
# 保护敏感配置文件
chmod 600 /etc/ssh/sshd_config
chmod 600 ~/.ssh/id_rsa
权限检查
# 查看文件权限
ls -l filename
# 查看目录权限
ls -ld directoryname
# 查看详细权限信息
stat filename
注意事项
- 谨慎使用777权限:给予所有用户完全权限存在安全风险
- 系统文件:不要随意修改系统文件权限
- 递归操作:使用
-R选项时要格外小心 - 符号链接:chmod默认修改的是符号链接指向的文件,而非链接本身
- 权限继承:新建文件和目录的权限受umask值影响
故障排除
常见问题
- "Operation not permitted":检查文件所有者身份
- "Permission denied":可能需要使用sudo
- 权限不生效:确认文件系统是否支持权限(如FAT32不支持)
解决方案
# 使用sudo获取管理员权限
sudo chmod 755 filename
# 检查文件系统类型
df -T /path/to/file
总结
chmod命令是Linux系统管理的基础工具,合理使用权限设置可以确保系统安全性和文件访问控制。建议遵循最小权限原则,只为用户分配必要的访问权限。

浙公网安备 33010602011771号