首先你得赋予这个文件的acl权限
试过就知道了,不要不做就在那想什么就问什么,普通用户可以改自己的文件权限,不能改其他的权限,root能改全部权限
默认权限由 umask 值决定。当 umask 值为 0000 的时候,新建的文件默认权限 666,目录 777。umask 后3位对应权限的 ugo,只是它不是mask,而是相反,umask,多个 u。umask 0222 相当于去掉新建文件或目录的 ugo 的写权限。
当文件有acl权限之后,ls 显示的中间那一组数就是表示的acl_mask而不是group了~~~
参考链接:http://www.cnblogs.com/ZhangShuo/articles/1836971.html
不会吧
set -b filename
会删除所有ACL权限
因为你用递归创建ACL权限,所以文件夹内部的所有文件也具有ACL权限。
所以如果你仅仅使用 setfacl -x u:用户 目录 进行ACL权限删除的话,只是对文件夹的ACL权限进行了删除,其内部的文件ACL权限并没有改变。
你需要使用 setfacl -x u:用户 -R目录名 进行权限递归删除
有时候在删除过后使用 ls -l 进行显示仍然有+号
但是如果你时候 getfacl 获取权限信息的时候你会发现其实权限已经删除了
我觉的是这样的,因为用递归权限命令去修改acl,同时每一个目录都有所属组,所以目录本身权限的改变也会相应的改变用户组的权限
在该目录下新建的文件acl的mask值为rw-,与父目录的默认acl权限相与后得到的有效权限就没x权限了,而w权限留下来了。