ACL时Access Control List的缩写,主要用于提供传统的owner、group、others的read、execute权限之外进行细部权限设置。ACL可以针对单一用户、单一文件或目录来进行r、w、x的权限设置。
注:由于ACL是传统的Unix-Like操作系统权限的额外支持项目,因此要使用ACL就需要有文件系统。
ACL主要可以针对用户(user)、群组(group)、默认属性(mask)来设置权限。
用户:针对用户来设置权限
群组:一群组为对象来设置其权限
默认属性:在目录下在建立新文件/目录是,设置新数据的默认权限。
# mount -o remount,acl /home #启动ACL并让/home支持ACL
# mount | grep /home #查看命令是否已生效
/dev/sda3 on /home type ext3 (rw,acl) #如果出现此条目则设置成功
如果希望开机系统就支持ACL则需要修改/etc/fstab
# vim /etc/fstab
/dev/sda3 /home ext3 defaults,acl 1 2
设置ACL:
getfacl:取得某个文件/目录的ACL的权限。
setfacl:设置某个文件/目录的ACL的权限。
setfacel [-mxdb]
-m,设置一个ACL的权限;
-x,取消一个ACL的权限;
-b 全部的ACL权限都移除;
-d 设置默认的ACL权限,仅能针对目录使用;
ACL针对用户、群组与默认权限设置方法:
setfacl -m u:dmtsai:rx somefilename #针对用户
setfacl -m g:users:rw somefilename #针对群组
setfacl -m m:rwx somefilename #针对默认权限来设置
getfacl somefilename #产看权限
file :somefilename #说明文件
owner:root #说明此文件的所有者,即ll看到的第三用户字段
group:root #此文件的所属用户组,即ll看到的第四用户字段
user::rwx #用户列表栏是空的,代表用户所有者权限
user:vbird1:r-x #针对vbird1的权限设置为rx,与所有者并不同
group::r-- #针对文件用户组的权限设置仅有r
mask::r-x 此文件默认的有效权限(mask)
other::r-- 其他人拥有的权限