![保留设置 FACL 的能力](https://linux22.com/image/1421465/%E4%BF%9D%E7%95%99%E8%AE%BE%E7%BD%AE%20FACL%20%E7%9A%84%E8%83%BD%E5%8A%9B.png)
在 linux 上使用 setfacl,好像只有owner
(和root
) 可以通过 setfacl 修改 ACL,对吗?
如果有一个目录由 拥有joe
并joe
授予,她可以rwx
读取marry
任何文件、创建新文件、删除旧文件、创建目录树等。一切似乎都很好,他们共享内容并可以更新彼此的文件。
但joe
只是希望能够设置任何 ACL,所以将来他希望允许linda
共享他的目录。但这只允许他拥有的文件,因此mary's
文件和目录无法更改权限。
问题是:
- 是否有权限更改 ACL 上的权限(除 rwx 之外的任何权限)?
mary
是否有任何方法可以通过任何 ACL 设置自动将由/创建的文件/目录的所有者设置linda
为joe
(chown -R
对于不属于的文件的压制性应用会失败joe
)?
编辑
@grawity:我无法评论,因此我将编辑并尝试在此解释动机:主要的一点是,joe
作为“共享目录管理员”和所有者,希望逐步添加/删除后续用户(为简单起见,所有用户都具有相同的rwx
权限):
setfacl -d -m u:linda:rwx
setfacl -m u:linda:rwx
他无法创建/更改任何组,他只是 的普通用户uid > 0
。我考虑过转移所有权仅此而已,而不是权限。想象一下linda
现在创建一个目录。新成员jack
进入俱乐部,要求joe
将他添加到列表中。但joe
不能更改除他自己的目录之外的其他内容...因此jack
无法访问由创建的文件linda
。joe
必须要求她设置权限等。
现在可能更有意义了。
答案1
是否有权限更改 ACL 上的权限(除 rwx 之外的任何权限)?
不,POSIX ACL 中没有。就像经典的 POSIX 权限位一样,只有所有者可以更改它们。
(它存在于 Windows/NTFS/CIFS/NFSv4 ACL 中,但无论如何它主要只与 FreeBSD 相关。)
有没有什么方法可以通过任何 ACL 设置自动将 mary/linda 创建的文件/目录的所有者设置为 joe(对于不属于 joe 的文件,强制应用 chown -R 会失败)?
不。但是,我不明白这对共享文件有什么帮助;如果有的话,只会更糟——Mary 创建了一个文件,但在 Joe 授予访问权限之前无法对其进行任何操作;同时,Joe 自动获得 Mary 创建的所有文件的访问权限,即使这些文件没有明确共享。这毫无意义。
环境默认目录(u:joe:rwx,u:mary:rwx,u:linda:rwx
甚至g:family:rwx
)上的 ACL 应该足以达到此目的。