如何在 Linux 中设置目录权限,以防止用户(所有者除外)删除文件但允许他们修改内容?

如何在 Linux 中设置目录权限,以防止用户(所有者除外)删除文件但允许他们修改内容?

环境:服务器 - Ubuntu(目前版本 13)客户端 - Windows 8 机箱

我们正在办公室设置运行 ubuntu 的 Samba-NAS 盒,团队要求设置以下系统。1. 所有者将文件放在文件夹中,只有所有者才能删除。2. 其他用户可以修改目录的内容(实际上,Windows 桌面上其他用户拥有的进程将访问此文件并修改其内容)。但他们应该能够删除它。

我探索了 chattr 和 sticky bit,但找不到能使其发挥作用的组合。

创建/编辑文件的驱动器位于非根驱动器上,并将安装在 mnt/disk 目录中。

答案1

我会尝试“创建者所有者”与“其他用户”权限的概念,而不是某些文件夹中的文件权限,而是选择创建者拥有的文件夹/目录,并可能创建不同的“交换”文件,一些可读,一些可写。这取决于您实际想要实现的目标。

SElinux 可能也有帮助,但 SElinux 和 Samba 的结合似乎会带来更多问题,而不是解决问题。最根本的一点是:应用更多规则会产生更多容易被忽视的怪癖。

我对此类问题的经验表明,如果您需要比操作系统/文件系统允许的更细粒度的访问,那么考虑自定义安全模型并编写具有所需访问系统的应用程序通常是更明智的做法。也许使用数据库。

我也很好奇是否有人以某种可接受的方式解决了这个问题,以及他/她是否做了概念上的界限。

有一个问题困扰着我:如果其他人可以编辑我的文件(实际上能够删除全部内容)——这与实际删除文件有什么区别?

相关内容