配置共享文件系统目录的最佳方法是什么? (超出标准 UNIX 权限)

配置共享文件系统目录的最佳方法是什么? (超出标准 UNIX 权限)

我的系统上有多个用户。我想要共享目录,例如音乐、视频。图片等。问题是我希望用户能够将任何新文件写入任何目录,但不能删除或修改他们不拥有的任何文件。使用标准的 UNIX 权限,如果您可以将文件添加到目录中,那么您也可以删除其他文件。我还想确保用户组始终可以读取这些目录中的所有文件。

我可以使用 POSIX ACL 执行此操作吗?或者我是否需要一些更高级的东西,例如 SELinux(或其他安全框架)。

我不想工作的例子。

su - root
mkdir /home/music
chmod 775 /home/music
chgrp users /home/music
su - user1 /home/music
touch /home/music/testfile
ll /home/music/testfile
su - user2
rm /home/music/testfile
ll /home/music

答案1

如果我理解正确的话,您希望音乐/视频等目录具有与 /tmp 相同的语义。

为此,您可以将粘性位放在目录上。引用 chmod 手册页:

限制删除标志或粘性位 限制删除标志或粘性位是单个位,其解释取决于文件类型。对于目录,它可以防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录;这称为目录的限制删除标志,通常在 /tmp 等全局可写目录中找到。

相关内容