硬链接其他用户的文件

硬链接其他用户的文件

假设用户 A 和用户 B 的磁盘配额均为 1 GB。
还假设用户 B 创建了一个具有权限 0666 的 900 MB 文件。
这允许用户 A 临时访问该文件(对于某些项目等)。
请注意,这也允许用户 A 写入该文件。

如果用户 A 创建了到该文件的硬链接,然后用户 B 删除了该文件,那么用户 A 是否实质上利用了配额系统,从用户 B 处“窃取”了 900 MB 的存储空间?

假设用户 B 从未向管理员报告过此情况,并且管理员也从未发现。
还假设用户 B 从不怀疑用户 A 的任何事情。换句话说,假设用户 B 不会查看用户 A 的目录和相应文件。

如果以前曾提出/回答过类似的问题,我很抱歉无法找到它们。

答案1

这是 Unix 权限模型中丑陋的极端情况之一。授予对文件的写访问权限允许对其进行硬链接。如果用户 A 对包含该文件的目录具有写入权限,则他们可以将其移动到用户 B 无权访问的目录。然后,用户 B 无法再访问该文件,但出于配额目的,该文件仍计入用户 B 中。

一些较旧的 Unix 系统有一个更严重的漏洞:用户可以调用chown将其文件之一授予另一个用户;如果他们之前将该文件设置为全局可写,他们可以继续使用该文件,但该文件将计入其他用户的配额。这是现代系统保留chownroot 权限的一个原因

不存在纯粹的技术解决方案。用户 B 会注意到他们的磁盘使用情况 ( du ~) 与配额使用情况不匹配,并向系统管理员投诉,系统管理员将调查并严厉批评用户 A。

相关内容