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)

相关推荐