📝 Linux chmod 命令详解

用于修改文件或目录的访问权限,是 Linux 权限管理的核心命令。


🔐 一、权限基础

1. 三类用户

用户类别 符号 说明
所有者(Owner) u 文件创建者
所属组(Group) g 文件所属用户组成员
其他人(Others) o 其他所有用户
全部(All) a u + g + o

2. 三种基本权限

权限 符号 数值 文件作用 目录作用
r 4 查看内容 列出内容(ls
w 2 修改内容 创建/删除文件
执行 x 1 运行脚本 进入目录(cd

⚠️ 目录必须有 x 权限才能进入!


🛠 二、两种使用方式

✅ 1. 符号模式(Symbolic)

1
chmod [who][+/-/=][rwx] file
  • who: u, g, o, a
  • 操作符: +(加)、-(减)、=(设)

示例:

1
2
3
chmod u+x script.sh        # 所有者加执行
chmod go-w file.txt # 组和其他人去写
chmod a=r myfile # 所有人只读

✅ 2. 数字模式(Octal)

三位八进制数:所有者 + 组 + 其他人

权限组合 数值
rwx 7
rw- 6
r-x 5
r– 4
-wx 3
–x 1
0

常见设置:

1
2
3
chmod 644 file.txt     # rw-r--r--(普通文件)
chmod 755 program # rwxr-xr-x(可执行程序)
chmod 700 private/ # 仅所有者访问(私有目录)

🧩 三、特殊权限(高级)

特殊位 数值 作用
SUID 4000 执行时以所有者身份运行(如 passwd
SGID 2000 执行时以所属组身份运行;目录中新建文件继承组
Sticky Bit 1000 目录中仅文件所有者可删除(如 /tmp

示例:

1
2
3
chmod 4755 /usr/bin/tool   # SUID
chmod 2775 /shared/ # SGID(组继承)
chmod 1777 /tmp # Sticky Bit

显示效果:
-rwsr-xr-x(SUID)
drwxrwxrwt(Sticky Bit)


🧪 四、实用技巧

1. 递归修改

1
chmod -R 755 /path/to/dir

⚠️ 谨慎使用!

2. 仅修改目录或文件

1
2
3
4
5
# 只改目录
find /path -type d -exec chmod 755 {} \;

# 只改文件
find /path -type f -exec chmod 644 {} \;

3. 查看权限

1
ls -l filename

输出示例:

1
-rwxr-xr-- 1 user group 1234 Jan 1 script.sh

⚠️ 五、安全建议

  • 普通文件不要随意加 x
  • 敏感文件(如 SSH 密钥)设为 600
  • Web 目录:文件 644,目录 755
  • **避免使用 777**(极度危险!)

💡 六、口诀总结

4读 2写 1执行,
u/g/o 加减等;
目录无 x 不能进,
安全第一莫乱设!


📌 备注:权限问题常导致“Permission denied”,善用 ls -lchmod 快速排查。