首頁·終端機命令

setfacl

權限與擁有者

用法

sudo setfacl -m u:[user]:rwx [path]

在不改擁有者的前提下給某個額外使用者或群組加權限;一旦有了 ACL,ls 會在權限後面顯示一個 +,而 mask 項目可能悄悄壓低你給出的權限。

常用選項

選項含義
-mAdd or change an entry, as in -m u:jenkins:rx
-xRemove one entry
-bRemove every ACL entry
-RApply to a whole tree
-dWork on the default ACL, which new files inherit
--setReplace the entire ACL in one go

範例

setfacl -m u:jenkins:rx /srv/app

Gives one extra user read and execute.

setfacl -R -d -m g:devs:rwX /srv/shared

New files inherit rights for the devs group.

setfacl -b report.pdf

Strips the ACL back to plain permission bits.

數字模式和符號模式說的是同一件事:755 和 u=rwx,go=rx 是同一個權限。

怎麼看

  • 方括號 [ ] 表示這部分可以不寫。
  • 省略號 … 表示可以寫多個。
  • 選項區分大小寫——有些命令裡 -r 和 -R 不是一回事。

常見問題

Q. setfacl 是做什麼的?

在不改擁有者的前提下給某個額外使用者或群組加權限;一旦有了 ACL,ls 會在權限後面顯示一個 +,而 mask 項目可能悄悄壓低你給出的權限。

Q. 怎麼寫?

sudo setfacl -m u:[user]:rwx [path] —— 方括號表示可以省略的部分。

Q. 值得記的選項有幾個?

這裡列了 6 個,完整列表在 man setfacl。這條命令屬於權限與擁有者。

相關命令

man 手冊: man setfacl