简单介绍下linux中acl的用法以及权限~~~这也是rhce必考的权限题哦~~
简单地来说ACL就是可以设置特定用户或者用户组对于一个文件/文件夹的操作权限. 需要掌握的命令也只有三个: getfacl, setfacl。
在接下去讨论之前大家可以先安装上ACL的RPM包
# rpm -ivh libacl-2.2.39-1.1 acl-2.2.39-1.1.i386.rpm
另外还需要磁盘分区的支持
永久启用acl。
查看磁盘默认挂载是否支持acl:
[root@rhce ~]# tune2fs -l /dev/sda1 | grep "Default mount options"
Default mount options: user_xattr acl
[root@rhce ~]# dumpe2fs -h /dev/sda1 | grep acl
dumpe2fs 1.41.12 (17-May-2010)
Default mount options: user_xattr acl
动态实时重新挂载目录使其支持acl:
我这里以自己的分区/aa为例
mount -o remount,acl /aa
并将选项加入fstab文件使其下次开启自动生效。
# vi /etc/fstab
/dev/huhu/aa /aa ext4 defaults,acl 1 2
出现上面的信息代表分区的acl功能已经正常加载
# cat /etc/mtab | grep /aa
/dev/mapper/huhu-aa /aa ext4 rw,acl 0 0
二、ACL的名词定义
先来看看在ACL里面每一个名词的定义。
ACL 是由一系列的访问条目所组成的. 每一条访问条目定义了特定的类别可以对
文件拥有的操作权限. 访问条目有三个组成部分: Entry tag type, qualifier
(optional), 权限
我们先来看一下最重要的Entry tag type, 它有以下几个类型
ACL_USER_OBJ: 相当于Linux里file_owner的权限
ACL_USER: 定义了额外的用户可以对此文件拥有的权限
ACL_GROUP_OBJ: 相当于Linux里group的权限
ACL_GROUP: 定义了额外的组可以对此文件拥有的权限
ACL_MASK: 定义了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大权限 (这个我下面还会专门讨论)
ACL_OTHER: 相当于Linux里other的权限