用户是否无法删除其拥有的目录中的文件?

用户是否无法删除其拥有的目录中的文件?

假设用户 A 和用户 B 不具有 root 权限。假设:

  • 用户A创建目录X权限为777
  • 用户B然后创建一个具有755权限的目录X/Y
  • 用户B然后创建一个X/Y/troll具有755权限的文件。

如果用户 A 尝试运行以下命令,正确的行为是什么:

rm -rf X/Y

那么“巨魔”文件呢?我刚刚在我的机器上测试过,用户 A 无法删除用户 B 的文件。它是否正确?

如果是这样,是否意味着用户 B 可以在 A 的目录中创建一个 A 无法删除的非常大的文件,从而超出 A 的配额?

答案1

是的,这是预期的行为,正如您所指出的,它可以用来欺骗其他用户,该用户已授予其他人对其目录的写入权限。正如您正确显示的那样,“troll”用户使用内容创建的没有写权限的目录只能由该用户和 root 删除。

这是因为您不能删除任何非空目录,并且未经许可不能修改其他用户的目录。

通常这不会导致资源限制问题(配额),因为它们通常是根据文件所有权而不是目录位置来计算的chown这是普通用户无法将自己的文件提供给其他用户的原因之一。否则,他们可以向chown用户传递一个文件,而该用户无权删除该文件。

还有一种方法可以用这个来控制配额:如果用户 AX在用户 B 添加文件后更改了权限:

chmod 700 X

用户 B 将无法删除该文件。如果没有指向任何文件的硬链接,他们也无法查看或重写它们。虽然您无法移动目录,但如果您对父目录具有写入权限,则可以移动其他用户的文件。所以世界可写目录通常是不明智的。

相反,在 Linux 中,当将文件传递给另一个用户时,请始终将文件保留在您自己的目录中并授予读取权限。其他用户可以为自己复制文件,而不会给您或他们带来任何风险。

几乎在每种情况下,针对此类行为的答案都是礼貌地要求巨魔用户停止,然后将他们的用户报告给系统管理员(如果他们不这样做)

答案2

假设您没有任何其他奇特的东西,例如棒位或 ACL 或文件功能或其他东西。

由于A无法写入Y,A无法取消troll文件的链接,那么Y不为空,因此无法删除,最终什么也不会发生。

FSUID=A 的进程是否可以取消链接拥有 B 的文件确实取决于……许多条件。请关注流程的凭据,而不是一直谈论用户名。

你的最后一个问题也是如此。 Linux 真的有这么多花哨的东西,你有权限做一些事情吗?这确实取决于很多条件……

相关内容