EasyDebug.NET

文件权限对照表

数字与符号互转、特殊位、umask 与常用命令,附换算器

rwxr-xr-x

共 65 条

0基础权限位

---

三位全无:不能读、不能写、不能执行

1基础权限位

--x

仅执行:能运行脚本,但读不到内容

2基础权限位

-w-

仅写:几乎没用,写入还要能读到元数据才行

3基础权限位

-wx

写加执行:只能写入和执行

4基础权限位

r--

仅读:只读文件与私钥最常见

5基础权限位

r-x

读加执行:脚本与可执行文件的典型值

6基础权限位

rw-

读加写:普通数据文件的典型值

7基础权限位

rwx

读写执行全开:目录要进入必须有它

rwx基础权限位

7

符号转数字:r=4、w=2、x=1,三位相加

-基础权限位

0

位置占位符:某位没有权限时显示短横

d基础权限位

-

文件类型位:d 是目录、- 是普通文件、l 是软链接

-rw-r--r--基础权限位

第 2 位 = 同组

读权限时按「所有者 / 同组 / 其他」三段看,每段三位

400常用组合

r--------

仅所有者可读,证书与私钥必须用它

440常用组合

r--r-----

所有者与同组可读

444常用组合

r--r--r--

所有人可读,定时清理任务常见

600常用组合

rw-------

仅所有者可读写,配置里含密码时用

640常用组合

rw-r-----

所有者读写、同组只读

644常用组合

rw-r--r--

普通文件的默认值,绝大多数文件都用它

660常用组合

rw-rw----

所有者与同组读写

664常用组合

rw-rw-r--

同组可写,共享目录里的文件常用

666常用组合

rw-rw-rw-

所有人可读写,一般不该出现

700常用组合

rwx------

仅所有者可进入,私有目录

750常用组合

rwxr-x---

所有者全开、同组可读可进

755常用组合

rwxr-xr-x

目录与脚本的默认值,Web 根目录常用

775常用组合

rwxrwxr-x

同组可写目录,团队共享目录用

777常用组合

rwxrwxrwx

所有人全开,生产环境不该出现;Web 目录写成它是常见事故

555常用组合

r-xr-xr-x

只读目录,防误删但连自己也写不进

500常用组合

r-x------

仅所有者可执行

111常用组合

--x--x--x

所有人可执行但不可读,罕见且难调试

drwxr-xr-x常用组合

chmod 755 dir

目录的 x 位决定能否 cd 进去,只有 r 位只能列名字

644 / 755常用组合

644 文件 / 755 目录

文件用 644、目录与可执行脚本用 755,是最通用的默认

chown -R www-data:www-data常用组合

chown -R www-data:www-data dir

改成把目录所有者给服务账号,而不是放开权限给所有人

4特殊权限位

setuid

setuid:执行时以文件所有者身份运行,危险位

2特殊权限位

setgid

setgid:执行时以文件所属组运行;用在目录上则新建文件继承该组

1特殊权限位

sticky

sticky:目录里的文件只有属主才能删除,/tmp 靠它

4755特殊权限位

-rwsr-xr-x

setuid 加 755,常见于需要提权的可执行文件

2755特殊权限位

-rwxr-sr-x

setgid 加 755

2775特殊权限位

rwxrwsr-x

setgid 目录,团队共享目录的标准做法

1777特殊权限位

rwxrwxrwt

sticky 加 777,/tmp 就是这个值

chmod u+s file特殊权限位

4755

给文件加 setuid

chmod g+s dir特殊权限位

2775

给目录加 setgid,让新文件继承目录的组

chmod +t dir特殊权限位

1777

加 sticky 位

rwSr--r--特殊权限位

rwSr--r--

有 x 位显示小写 s,没有则显示大写 S —— 大写意味着该位其实不生效

022umask 掩码

文件 644 / 目录 755

默认掩码:从 666 与 777 里扣掉组写与其他写

002umask 掩码

文件 664 / 目录 775

允许同组写,团队共享机器常用

027umask 掩码

文件 640 / 目录 750

禁止其他用户任何权限,偏严格的服务器

077umask 掩码

文件 600 / 目录 700

最严格:新建文件与目录只有自己能碰

umaskumask 掩码

当前掩码

查看当前掩码,同一台机器不同 shell 可能不同

umask -Sumask 掩码

u=rwx,g=rx,o=rx

用符号形式显示,比数字直观

666 - umaskumask 掩码

666 与 022 得到 644

新建文件的权限由 666 减掉掩码得到;目录则用 777

umask 022umask 掩码

仅当前 shell 生效

改掩码只影响当前会话,要持久需写进 shell 配置或 /etc/profile

chmod 755 file常用命令

数字改权限

最常用的改权限写法

chmod u+x file常用命令

给所有者加执行位

符号写法,只改一位而不动其他

chmod -R 755 dir常用命令

递归改目录内全部

递归改权限,会把文件也改成 755,通常不是本意

chmod --reference=a b常用命令

b 复制 a 的权限

参照另一个文件设置权限,避免手算数字

chown user:group file常用命令

同时改所有者与组

改归属,冒号后是组

chown -R www-data:www-data /var/www常用命令

递归改归属

Web 目录交给服务账号,比放开 777 正确得多

chgrp group file常用命令

只改所属组

单独改组,不改所有者

ls -l常用命令

-rw-r--r-- 1 ada dev

看第一列读权限:类型位 + 三段九位

stat -c "%a %n" file常用命令

644 file

直接输出数字权限,写脚本比 ls 解析靠谱

find . -type f -exec chmod 644 {} \;常用命令

只改文件

按类型分别设权限,是修正 777 事故的标准做法

find . -type d -exec chmod 755 {} \;常用命令

只改目录

与上一条配对使用

getfacl file常用命令

查看 ACL

查看 ACL,标准权限位之外的细化授权

setfacl -m u:user:rw file常用命令

给指定用户授权

ACL 授权,不用改所属组

sudo -u user cmd常用命令

以指定用户身份执行

以他人身份执行命令,排查权限问题常用

这个工具不好用,或者遇到 bug?

去反馈
站长的博客
提个建议