Linux有一种被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下你需要确认3个权限组:owner、group和other。而使用ACL,你可以增加权限给其他用户或组别,而不单只是简单的"other"或者是拥有者不存在的组别。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。
用于设置或修改文件的 ACL
• setfacl -m u:bob:rwx filename
– 授予用户westos 读写执行权限
权限列表的读取
# file: file 文件名称
# owner: root 文件所有人
# group: kroot 文件所有组
user::rw- 用户权限
user:westos:rwx 特殊指派用户及权限
group::r-- 组权限
mask::rwx 可指派最大权限
other::r-- 其他人权限
• setfacl -m g:westos:rwx filename ,授予组 student 读写执行权限
• setfacl -x g:student filename ,删除用户组 student的 ACL 权限
– • setfacl -b filename ,关闭文件的ACL权限
setfacl -m o::- filename
– 修改其他所有人的权限为空
掩码及继承
• 具有 ACL 的文件拥有一个 “ mask” ( 掩码 ), 这个掩码既能够限制拥有该文件的组的最大权限 , 有能 够限制 ACL中的补充用户和组所拥有的最大权限
当修改文件的普通权限时会使mask改变
可以通过如下命令进行修改回来 setfacl -m m:rwx file
• 目录可以有 “ 默认 ACL” 条目 , 系统自动针对在该目录中创建的新文件设置这些条目,这类似 setgid 权限的方法( 针对目录时 ), 使得在该目录中创建的新文件归拥有该目录的组所有。
• setfacl -m d:u:bob:rw directory