![授予用户对其他组拥有的目录的写权限](https://linux22.com/image/1314416/%E6%8E%88%E4%BA%88%E7%94%A8%E6%88%B7%E5%AF%B9%E5%85%B6%E4%BB%96%E7%BB%84%E6%8B%A5%E6%9C%89%E7%9A%84%E7%9B%AE%E5%BD%95%E7%9A%84%E5%86%99%E6%9D%83%E9%99%90.png)
我有一个目录 foo,drwxr-x--- someuser somegroup
并在该目录 foo 中创建了一些文件,这些文件对所有者、组和其他人具有读取权限。如何otheruser
在不将此用户添加到某个组的情况下授予用户对该目录的写入权限?
setfacl
这个可以用吗?
谢谢。
答案1
对于实际文件和新文件,您需要使用以下命令设置 acl:
setfacl -Rm d:u:otheruser:rwX,u:otheruser:rwX /your/dir
如果您只希望目录为 x 而不希望文件为 x,请使用 X(大写)。使用 x(小写)来包含文件。
该d:u:otheruser
命令的第一部分用于默认文件(新文件),第二部分用于现有文件。您可以根据需要为每个部分设置不同的权限。
-R
用于递归
感谢 user390689(原始提问者)的输入,还需要添加掩码(和默认掩码),因为setfacl
应该(根据 man setfacl 和我自己的经验)根据现有组 acl 和添加的权限的联合创建一个掩码。因为在这种情况下,您只提供用户而不提供组,所以组没有 acl,并且联合为空,因此您需要手动执行此操作:
setfacl -Rm d:m:otheruser:rwX,m:otheruser:rwX /your/dir
答案2
谢谢。我还发现我需要先用 setfacl -mm:otheruser:rwX 设置掩码。