acl设置问题
在学习nfs服务配置的时候用到了acl规则(服务配置文件权限设置可写,但是由于客户端映射,不能写入,所以要设置系统权限),但是遇到了一个小小的问题:一、当使用-x选项取消规则的时候,再次查看权限后面仍然跟着+号。二、再添加acl规则的时候,在用户组权限多了别的权限。
查了些资料最终也是了解了一些,在这里只讲问题,至于acl设置规则,选项等等,大家可以百度一下。
先看一下问题状况。
创建目录,查看权限
设置acl规则,查看权限:
我们可以看到,权限中的所属用户组权限多了可写,话说我们设置的是acl规则,为什么用户组权限那里却多出了可写权限。
其实,当你设置了acl的时候,在所属组的权限位置的意义,已经改变了。这里涉及到了ACL_mask权限问题(定义了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大权限),当你设置acl后,那个位置已经代表的是mask的权限。
我们通过getfacl查看一下:
可以看到,mask的值和用户组位置的一样。
所以说,当你添加acl的时候发现用户组位置的权限改变了,不要惊慌,那是因为,那个位置的权限已经变成了mask的权限值。
注意的是,当你发现权限改变,不要去将他改过了,那样你会改变mask的值,造成acl权限不全问题,而影响你的操作。例:
当权限完整,客户端具有可写权限:
当改回原先的权限:
还有就是我们去掉acl的时候,加好标志并没有取消
也是因为mask的值仍然存在。
如果想要去除加好,防止混乱,我们可以使用-b选项:
可以看到mask值没了,加号消失。