757允许所有者读取,写入,执行+读取,由所有者组执行+读取,写入,由其他人执行。
有没有什么方法可以只读给user01? 请使用绑定挂载排除解决scheme,因为此目录包含大量的小文件。 绑定安装会在几天内导致0%的inode错误。
谢谢。
您正在寻找访问控制列表(ACL),它比传统的用户/组/其他权限提供更多细化的访问控制。
文件系统需要使用acl挂载选项(重新)挂载以启用ACL。 要在/ data卷上启用ACL,请执行以下操作:
mount -o remount,acl /data
和/或编辑/etc/fstab以使更改持久化。
然后, setfacl命令允许您更改ACL, getfacl将检索它们。
例如,给用户bob的读取权限:
setfacl -mu:bob:r Data getfacl Data # file: Data/ # owner: herman # group: staff user::rwx user:bob:r--
ACL的可视化指示是GNU ls -l扩展输出的第11个权限列中的+ :
drwx------+ 39 herman staff 1326 Nov 23 09:58 Data ^ |_ + to indicate ACL's (or . to indicate SELinux context)
请查看本手册的实例,以获得比man 手册更多的用户友好解释。
实现这个的“正确”方式是ACL,这意味着遵循HBruijn提供的答案 。
但是,这并不是说使用传统的Unix文件权限来解决这个问题是不可能的。 在不使用ACL的情况下,可以实现相同的目标,如下所示:
read-only-users 。 read-only-users放入read-only-users组。 757 。 Unix文件的权限不被评估,所以最宽容的胜利,但根据文件的类。 这意味着特定文件类中的用户具有不同的权限集:
所有者文件类 – 如果所有者执行操作,则针对所有者权限模式位(位掩码中的第一位)评估其操作。
组文件类 – 如果用户不是文件所有者,而是文件组的成员,则控制该操作的有效权限是组权限模式位(位掩码中的第二位数字)。
其他文件类别 – 如果用户既不是文件所有者也不是文件组的成员,则应用其他权限模式位(位掩码中的第三位数字)。
在这种情况下,我们给文件一个独特的组,我们添加只读用户。 当评估权限时,该组的成员被限制为组权限位掩码,该位掩码明确禁止写入文件。 这达到了既定目标。
出于显而易见的原因,您无法使用此技术locking文件所有者。 分配给所有者的权限始终优先于组权限,即使所有者是read-only-users的成员。 无论如何,即使你在一个标准的Unix系统上限制了所有者,他们总是能够调用chmod(1)来给予他们自己的权限,而不pipe他们当前的位掩码是什么。