假如我们希望某些用户能访问某个文件,某些用户不能访问,希望是某个用户对某个文件可以读取带不可以更改执行,这些我们都可以使用文件系统访问控制列表acl解决。

    在这里,我们创建一个用户gentoo,给出以下例子帮助大家掌握acl的使用方法。

gentoo  gentoo:gentoo /data/gentoo.txt

tune2fs /dev/sda7 -o acl  修改文件的挂载选项为acl
    在说acl之前,我们先了解以下文件的扩展属性使用方法:
 
lsattr 查看文件的扩展属性在
/etc下使用lsattr 显示当前目录下所有文件的扩展属性
lsattr /etc/test.txt 表示显示/etc/test.txt文件的特殊属性
chattr 修改文件的扩展属性
在chattr后,+ 表示添加属性 - 表示删除属性 = 表示精确定位属性
比如说
+u 禁止删除
+A 禁止更新访问时间(例如网站服务器上,文件不停的被用户访问,假如更新访问时间就会一遍一遍的读写磁盘,消耗大量磁盘占用时间)
+i:永久不可更改文件,防止管理员无意间修改文件内容
+d:禁止备份转储
chattr +u +A /etc/test.txt
这里很简单 大家自己尝试下就明白了
 
    下面开始介绍acl的用法
查看:
getfacl FILENAME 查看当前文件的访问控制列表
#getfacl my.sh
设置:
setacl 设置当前文件的访问控制列表
我们定义用户或组是,可以使用名字,也可以使用ID号
setfacl -m u:UID:PERMISSION FILENAME 指定用户对文件的权限
setfacl -m g:GID:PERMISSION FILENAME 指定组对用户的权限
setfacl -m d:u:UID:PERMISSION DERICTORYNAME 设置目录默认访问权限,使目录中的子文件都会继承目录权限
setfacl -m m:PERMISSION FILENAME 设置mask权限,也就是默认权限,对所有用户都有效。 当mask权限与用户acl权限不一致时,我们取最低限制值,也就是说我们取那个严格的标准
例子:
#setfacl -m m:rw- my.sh               设置有效权限为rw  对于属主不受影响
#setfacl -m u:gentoo:rwx /rppt/my.sh  gentoo用户对my.sh文件拥有所有权限
#setfacl -m g:gentoo:rwx /rppt/my.sh  gentoo组队my.sh文件拥有所有权限
#setfacl -m u:gentoo:rw- /rppt/my.sh  grntoo用户对my.sh文件有读写权限     
取消权限:
setfacl -x u:UID:PERMISSION FILENAME 取消用户对文件的访问控制列表
setfacl -x g:GID:PERMISSION FILENAME 取消组对文件的访问控制列表
大家多建几个目录文件更改权限尝试一下以加深掌握就好了~