Linux基本知识点总结——ACL权限设置
用户权限管理始终是 Linux/Unix 系统管理中最重要的环节。UGO 权限管理方式是最常用的,但是,对于一些比较复杂的权限管理,UGO显得无能为力,此时便需要用到ACL。
Linux下的ACL(Access Control List),即文件/目录的访问控制列表,可以针对任意指定的用户或用户组分配rwx权限。通过ACL功能配置的权限优先级高于通过chmod命令配置的普通权限。
以下实验平台为CentOS 6.2。
一、设置ACL支持
Linux ACL需要内核和文件系统的支持,安装操作系统任务完成后所建立的分区默认是不支持ACL功能的,需要手动进行相关配置。
这里以加载到/data的lv_data分区为例,
[root@itpro ~]# cat /etc/fstab
# /etc/fstab
/dev/mapper/vg_itpro-lv_root / ext4 defaults 1 1
/dev/mapper/vg_itpro-lv_data /data ext4 defaults 0 0
……省略部分输出……
[root@itpro ~]# ll -d /data/
drwxr-xr-x. 4 root root 4096 Mar 12 02:56 /data/
[root@itpro ~]# ll /data/
total 24
drwxr-xr-x. 2 root root 4096 Mar 12 02:56 dirtest
-rw-r--r--. 1 root root 5 Mar 12 02:55 filetest
drwx------. 2 root root 16384 Mar 12 02:53 lost+found
当root试图针对/data目录给用户sqa设置acl访问权限时,报错,
[root@itpro ~]# setfacl -m u:sqa:rwx /data/
setfacl: /data/: Operation not supported
解决方法有如下三种:
方法1, 使用mount命令,acl选项
此命令使一个分区临时支持ACL,但系统重启后ACL会失效。另外,由于涉及到umount操作,此方法会带来不便。
[root@itpro ~]# mount -o remount,acl /data
(注:使用acl选项重新加载分区,也可以先卸载文件系统,再使用acl选项重新加载,如:
[root@itpro ~]# umount /dev/mapper/vg_itpro-lv_data /data
umount: /data: not mounted
[root@itpro ~]# mount -o acl /dev/mapper/vg_itpro-lv_data /data
但这具步骤会影响到data分区的使用,
不过呢,如果要撤销acl支持,使用命令
[root@itpro ~]# mount -o remount /data
是无效的,需要重启系统或重新加载文件系统,不带acl选项,即,
[root@itpro ~]# umount /dev/mapper/vg_itpro-lv_data /data
[root@itpro ~]# mount /dev/mapper/vg_itpro-lv_data /data
)
[root@itpro ~]# setfacl -m u:sqa:rwx /data/
[root@itpro ~]# setfacl -b /data/
(注:这里成功设置acl,操作完成后清除acl)