ACL 有两种:存取 ACL(access ACLs)和默认 ACL(default ACLs)。存取 ACL 是对指定文件或目录的存取控制列表。默认 ACL 只能和目录相关。如果目录中的文件没有存取 ACL,它就会使用该目录的默认 ACL。默认 ACL 是可选的。
ACL 可以按以下条件配置:
每用户
每组群
通过有效权限屏蔽
为不属于文件用户组群的用户配置
setfacl 工具为文件和目录设置 ACL。使用 -m 来添加或修改文件或目录的 ACL:
setfacl -m <rules> <files> |
规则(<rules>)必须使用以下格式指定。同一条命令中可以指定多项规则,只要它们是用逗号分开即可。
为用户设置存取 ACL。用户名或 UID 必须被指定。用户可以是系统上的任何合法用户。
为组群设置存取 ACL。组群名称或 GID 必须被指定。组群可以是系统上的任何合法组群。
设置有效权限屏蔽。该屏蔽是组群所有者和所有用户和组群项目的权限的合集。
为文件的组群用户之外的用户设置存取 ACL。
空格被忽略。权限(<perms>)必须是代表读、写、和执行的字符(r、w、x)的组合。
如果某文件或目录已经有了一个 ACL,而 setfacl 命令仍被使用了,额外的规则就会被添加到已存在的 ACL 中,或用来修改已存在的规则。
例如,要给用户 tfox 以读写权限:
setfacl -m u:tfox:rw /project/somefile |
要删除用户、组群或其它人的所有权限,使用 -x 选项,并且不指定任何权限:
setfacl -x <rules> <files> |
例如,删除 UID 为 500 的用户的所有权限:
setfacl -x u:500 /project/somefile |