![硬链接其他用户的文件](https://linux22.com/image/60158/%E7%A1%AC%E9%93%BE%E6%8E%A5%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%E7%9A%84%E6%96%87%E4%BB%B6.png)
假设用户 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
将其文件之一授予另一个用户;如果他们之前将该文件设置为全局可写,他们可以继续使用该文件,但该文件将计入其他用户的配额。这是现代系统保留chown
root 权限的一个原因。
不存在纯粹的技术解决方案。用户 B 会注意到他们的磁盘使用情况 ( du ~
) 与配额使用情况不匹配,并向系统管理员投诉,系统管理员将调查并严厉批评用户 A。