Linux权限问题

  1. 以普通用户权限创建一个目录;
  2. 切换到root用户,在第一步创建的目录中新建一个文件;
  3. 再次切换到普通用户,发现居然可以删除root写的文件。

root账号创建的文件怎么会被普通用户删掉呢?和目录的所属主是普通用户有关么?

图片描述

阅读 1.8k
1 个回答

用户没有删除该文件, 是系统删的。用户只是从自己的目录中移除了该文件。系统已删除该文件, 因为其引用计数已降至零。从目录中删除文件的用户碰巧将其引用计数降至零, 这只是偶然的。(如果文件被硬链接到另一个目录, 或者打开了一个句柄, 则该文件将不会被删除。

系统在其引用计数降至零时自动删除文件。文件的所有者无关紧要。除了文件所有者之外, 其他人可以将文件的引用计数拖到零。

从目录中删除文件 (称为 "取消链接" unliking) 是对目录的操作。取消文件将减少其引用计数。

同样, 所有者以外的用户可以关闭未链接到任何目录的文件的最后一个句柄。关闭该句柄也会删除该文件, 因为引用计数将会降至零。

换个思路可以理解为: 删除文件是对目录的操作--对目录具有写权限的任何用户都可以删除包含的文件 (除非在目录中设置了粘滞位 (T 或 01000))。

不是我的答案,我只是答案的搬运工:
https://superuser.com/questio...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题