chmod三位数字分别代表所有者、所属组、其他用户的权限,每位是r=4、w=2、x=1的组合值;常用644(配置文件只读)、755(可执行脚本/目录)、600(私钥仅所有者读写)、700(私密目录严格隔离),需注意目录必须含x才能访问,慎用777,推荐find分文件/目录精准赋权。

Linux 运维中用 chmod 数字法改权限,核心是理解三位数的含义和对应场景,不是死记硬背数字,而是按需组合。
三位数字分别代表谁的权限
chmod 后面跟的三位数字,顺序固定为:所有者(user)|所属组(group)|其他用户(others)。每位数字是该类用户权限值的总和:
- r(读)= 4
- w(写)= 2
- x(执行)= 1
- 无权限 = 0
例如 755:第一位 7 = 4+2+1(所有者 rwx),第二位 5 = 4+0+1(组 r-x),第三位 5 = 4+0+1(其他人 r-x)。
哪些数字组合最常用、为什么
运维中高频使用的数字不是随意定的,而是匹配文件类型与安全原则:
- 644:普通文本/配置文件(如 nginx.conf、.env)。所有者可读写(6 = r+w),组和其他人只读(4 = r),防误改又保可读。
- 755:可执行脚本(deploy.sh)、Web 目录(/var/www/html)。所有者全权(7),组和其他人能进入目录或运行脚本(5 = r+x),但不能改内容。
- 600:敏感文件(id_rsa、.pgpass)。仅所有者读写(6),组和其他人彻底无权限(0),避免私钥泄露。
- 700:私密目录(~/backup)。所有者完全控制(7),其余用户连进都进不去(0),比 755 更严格。
实际操作要点和避坑提醒
数字法高效,但几个细节不注意容易出问题:
- 目录必须有 x 权限才能 cd 进入或 ls 列出内容。设成 644 的目录会报 Permission denied —— 改用 755 或 700。
- 脚本文件默认创建是 644,直接 ./run.sh 会失败。要先 chmod 755 run.sh 加上 x 才能执行。
- 慎用 chmod -R 777。它会让整个子树失去保护,尤其是 Web 目录下上传的文件可能被恶意利用。
- 批量设权时,可用 find /path -type f -exec chmod 644 {} \; 单独处理文件,再用 find /path -type d -exec chmod 755 {} \; 处理目录,更安全。
快速验证和调试方法
改完权限别急着走,立刻验证是否符合预期:
- 用 ls -l filename 看输出最左一列,比如 -rwxr-xr-- 对应 754,不是 755 就说明输错了。
- 对目录,尝试 su -s /bin/bash -c "ls /target/dir" 切换到普通用户测试能否列出内容。
- 对脚本,用非所有者账户执行 ./script.sh,确认是否按设计允许或拒绝。


















