首页·终端命令

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