Linux中ACL文件访问控制列表(2)

setfacl -m u:zyq:rwx test.sh
user 对应ACL_USER_OBJ和ACL_USER简写为u
group 对应ACL_GROUP_OBJ和ACL_GROUP简写为g
mask 对应ACL_MASK
other 对应ACL_OTHER简写为o
第二个字段称之为qualifier.也就是上面例子中的zyq和jackuser组.它定义了特定用户和用户组
对于文件的权限.这里我们也可以发现只有user和group才有qualifier,其他的都为空
第三个字段就是我们熟悉的权限了. 它和Linux的权限一样定义,这里就不多讲了
当设置过ACL访问控制权限就会在在文件权限的最后多了一个+号。

chacl

chacl是用来更改文件或目录的访问控制列表的命令。
chacl命令的格式是: chacl acl filename1 filename2
chacl就是一个改变文件存取控制列表的一个命令。
-b 表明这里有两个acl需要修改,前一个acl是文件的acl,后一个是目录的默认acl。
-d 设定目录的默认acl,这个选项是比较有用的。如果指定了目录的默认acl,在这个目录下新建的文件或目录都会继承目录的acl。
-R 只删除文件的acl
-D 只删除目录的默认acl,是-d的反向操作。
-B 删除文件和目录默认的acl。是-b的反向操作。
-r 递归地修改文件和目录的acl权限。
-l 列出文件和目录的acl权限。

使用过ACL之后即使用了setfacl -x删除了所有文件的ACL属性,那个+号还是会出现在文件的末尾.如果不想让他显示则可以使用chacl -B
用cp来复制文件的时候我们现在可以加上-p选项.这样在拷贝文件的时候也将拷贝文件的ACL属性.对于不能拷贝的ACL属性将给出警告
mv命令将会默认地移动文件的ACL属性. 同样如果操作不允许的情况下会给出警告

MASK和effective

ACL_MASK是掌握ACL的另一个关键。ACL_MASK规定了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大权限.当我们设置一个文件的ACL_USER或者ACL_GROUP时,ACL_MASK同时也会被定义,一但文件设置ACL之后文件的用户组权限位就会被替换成ACL_Mask值。

Default ACL

Default ACL是指对于一个目录进行Default ACL设置,并且在此目录下建立的文件都将继承此目录的ACL,ACL定义了default选项, 当某一个用户拥有了default的read, write, excute/search 权限.但是却无法删除和创建文件。如果需要执行权限需要把目录的ACL_USER修改为那个用户后才能在那个目录中删除和创建文件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13022.html