chmod 数字与字母写法对照
发布时间:2025-11-03 10:15       
更新时间:2025-11-04 07:31
ls -l 输出开头的 -rwxr-xr--,就是 755 和 644 这些数字的全部由来。看懂这一行,chmod 的两种写法就都能对上号。
九个字符的含义
第一位是类型,- 是普通文件,d 是目录;后面九个字符三三分组:属主、属组、其他人。每组里 r 是读、w 是写、x 是执行。目录的 x 有专门含义:表示"可以进入",没有它,cd 进不去。数字记法把三个权限折算成 r=4、w=2、x=1 再相加:rwx 等于 7,rx 等于 5,rw 等于 6。
对应到常见组合
755 即 rwxr-xr-x:属主全权,组和其他人能读能进不能改,目录和脚本最常用;644 即 rw-r--r--:属主可读写,其他人只读,普通文件的标配;600 即 rw-------:只有属主能动,私钥文件的标配。顺带一提,ssh 报 UNPROTECTED PRIVATE KEY 拒用私钥时,就是权限超标了,chmod 600 收紧即可。个别场景会用到 751:别人能进目录却列不了清单,下载目录偶尔这么配。权限还有三个特殊位,认识即可:setuid 让执行者临时获得属主身份,passwd 命令靠它改密码;setgid 让目录内新文件继承组;sticky bit 让目录内文件只有属主能删,/tmp 的 1777 就是它。
字母写法用在微调
chmod u+x deploy.sh 给属主加执行位;chmod g-w file 把组的写权限去掉;a 代表所有人,o 代表其他人。微调一两位时比数字写法直观,不用心算。组合起来用,改动越小越不容易出事。想照着某个文件抄一份权限,chmod --reference=参考文件 目标文件,格式对齐利器。
递归的经典难题
chmod -R 755 目录 会把里面的文件也全部加上执行位,这通常不是想要的。两个技巧:
其一,大写 X 只给目录和已有执行位的文件加 x:chmod -R a+rX /data/www;
其二,用 find 分两步:find /data/www -type d -exec chmod 755 {} \; 再 find /data/www -type f -exec chmod 644 {} \;,目录与文件各归各位。
最常见的现场顺带说一下:脚本报 Permission denied,十有八九是缺执行位,chmod +x 一秒解决。改权限前先 ls -l 留个底;在系统根目录上随手递归 chmod 属于不可逆操作,回车前想清楚。