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?

去回報
站長的博客
提個建議