【问题标题】:User able to modify file owned by root. Why?用户能够修改 root 拥有的文件。为什么?
【发布时间】:2013-08-30 11:35:45
【问题描述】:

我想阻止用户修改文件,但我似乎无法使用标准权限使其工作。

文件是file.jpg,在文件夹2012/中。

文件详情:

-r--r--r-- 1 root root 10294 Feb 19  2013 file.jpg

文件夹详情:

drwxr-xr-x 2 charly charly 36864 Aug 27 15:38 2012/

我的目的是防止用户重命名文件,但拥有他能够做到的权限。

我错过了什么?

【问题讨论】:

  • 用户是否在任何特权groups 中?此外,对于 SuperUser 甚至 ServerFault,这个问题可能会更好。
  • 不,用户是简单用户。用户不能重命名或修改 root 拥有的目录中的文件。
  • 为什么要阻止重命名文件?修改文件意味着修改其中(inode)中的一些数据(或元数据)。 你为什么这么问?
  • 该文件中有木马,因此我将其重命名为 file.jpg.trojan,并且我想确保它不能重命名回 file.jpg,因为该网站因以下原因被列入黑名单它。当然我可以删除文件或者相信网站开发人员不会将其重命名为 jpg,但我想知道如何做到这一点。

标签: linux file-permissions


【解决方案1】:

在同一文件系统中重命名或移动文件时不会更改文件,因为文件实际上是inode(目录中可能有零个、一个或多个文件名)。

重命名文件是相关目录内的操作(​​而不是文件本身)。也许删除对目录的写访问权可能会有所帮助(但如果用户拥有该目录,他可以使用chmod 再次更改对目录的这些权限)。另请阅读有关目录中sticky bit 的更多信息。

顺便说一句,用户也可以硬链接同一个文件,即为其添加一个新文件名。那么每个文件名都指向同一个文件。

【讨论】:

  • 谢谢。如果不删除用户对目录的写权限(因为用户需要添加或修改其他文件),您将如何完成此操作?你有什么办法可以想到?
【解决方案2】:

文件的权限阻止/允许访问文件。重命名文件不涉及更改文件本身 - 重命名实际上是对目录的更改。

尝试将目录权限更改为:

dr-xr-xr-x

看看会发生什么。

【讨论】:

    猜你喜欢
    • 2013-05-10
    • 2013-09-27
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多