檔案權限對照表
數字與符號互轉、特殊位、umask 與常用命令,附換算器
共 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?
去回報