ACL 权限控制

ACL 权限控制主要目的是提供传统的 owner,group,other 的 read,wirte,execute 权限之外的具体权限设置,可以针对单一用户或组来设置特定的权限
比如:某一目录权限为
drwxrwx— 2 root root 4096 03-10 13:51./acldir
用户 user 对此目录无任何权限因此无法进入此目录,同时也不适宜设置other的权限,ACL 可单独为用户 user 设置这个目录的权限,使其可以操作这个目录。

ACL 启动

要使用 ACL 必须要有文件系统支持才行,目前绝大多数的文件系统都会支持,EXT3文件系统默认启动ACL。

查看文件系统是否支持 ACL

# dumpe2fs -h /dev/sda2 |grep acl
Default mount options: user_xattr acl

加载 ACL 功能

如果支持 ACL 但是文件系统并不是默认加载此功能,可自己进行添加

# mount -o remount,acl /

同样也可以修改磁盘挂在配置文件设置默认开机加载

# vi /etc/fstab

LABEL=/ / ext3 defaults,acl 1 1

查看 ACL 权限

$ getfacl filename

设置 ACL 权限

# setfacl [-bkRd] [-m|-x acl 参数] 目标文件名

选项与参数:
-m: 设置后续的 acl 参数,不可与-x 一起使用
-x: 删除后续的 acl 参数,不可与-m 一起使用
-b: 删除所有的 acl 参数
-k: 删除默认的 acl 参数
-R: 递归设置 acl 参数
-d: 设置默认 acl 参数,只对目录有效

针对特殊用户
设置格式:u:用户账号列表:权限
权限:rwx 的组合形式
如用户列表为空,代表设置当前文件所有者权限

针对特定用户组
设置格式:g:用户组列表:权限 权限:rwx 的组合形式 如用户组列表为空,代表设置当前文件所属用户组权限 举例: