我正在运行 Debian 7 服务器并具有以下场景(示例名称)
用户:
- 保罗:保罗
- 约翰·保罗
目录:/home/paul/目录
- 文件 W(所有者 paul、小组 paul、权利:0770)
- 文件 X(所有者 paul、群组 paul、权利:0700)
- 文件 Y(所有者 paul、组 paul、权限:0700)
- 文件 Z(所有者约翰、小组保罗、权利:0770)
用户 john 应该可以删除“文件 Z”,但不能删除“文件 X”或“文件 Y”,他还应该有编辑和删除“文件 W”的权限。
简而言之:他只能删除自己的文件,但可以在获得权限的情况下编辑所有文件。
我正在寻找一种解决方案,以使用目录的删除位来删除指定文件。选项“chattr”不是选项,因为不应该使用 root 权限执行任何操作。
有人有想法吗?
答案1
在 POSIX 安全模型中,要删除文件,你只需要对其具有写权限 父目录。因此,如果“john”帐户+w
对 /home/john/Directory 有权限,它将始终能够删除里面的文件。
但有一个例外,即“粘性”/“限制删除”模式。当你设置+t
在目录中,文件删除受到限制仅有的发送给文件所有者或目录所有者。(例如,以/tmp
这种方式工作。)因此,如果您chmod +t
和chown root
目录,您应该会得到预期的结果。