【问题标题】:Changed file ownership to root but original user can still edit the file? [closed]将文件所有权更改为 root 但原始用户仍然可以编辑文件? [关闭]
【发布时间】:2023-04-02 16:03:02
【问题描述】:

我运行了以下命令:

chown root:root file.php
chmod 0644 file.php

在输入 ls -l 时似乎已应用设置:

-rw-r--r-- 1 root root 310 Jul 26 01:25 file.php

但是,原用户仍然可以通过 Cpanel 文件管理器编辑文件,并且在保存后,文件所有权又归原用户所有。例如,

-rw-r--r-- 1 orig_user orig_user 310 Jul 26 01:25 file.php

如何防止用户编辑已由 root 拥有的文件?

【问题讨论】:

  • 您的网络服务器在什么帐户下运行?
  • @merlin2011 是的! chattr +i 像老板一样工作
  • 原始用户可能对该目录具有写权限,并且 Cpanel 文件管理器可能正在删除指向 root 拥有的文件的链接,并将其替换为指向由 root 拥有的文件的链接原始用户。
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Server FaultWebmaster Stack Exchange 会是一个更好的提问地点。

标签: linux cpanel file-permissions chmod chown


【解决方案1】:

在文件上使用chattr 使其不可变。

sudo chattr +i file.php

【讨论】:

    【解决方案2】:

    如果编辑器使用“擦除旧文件 + 写入新文件”而不是“修改现有文件”,这很完美。如果是这样,则必须更改包含目录的权限以防止用户擦除文件。

    删除文件不依赖于文件的权限!

    在 shell 中尝试一下:

    > touch bla
    > chmod 000 bla
    > sudo chown root:root bla
    > rm bla
    ... maybe a warning ...
    

    但文件将被删除!

    因为 chownchmod 对文件没有帮助,但对包含目录有帮助。

    在 ext2、ext3 和最常见的较新的文件系统上,您可以使用 chattr 来保护更多属性。

    > sudo chattr +i bla 
    > lsattr bla
    

    来自chattr 手册页:

    无法修改具有“i”属性的文件:无法删除或重命名,无法创建指向该文件的链接,也无法向该文件写入数据。只有超级用户或拥有 CAP_LINUX_IMMUTABLE 能力的进程才能设置或清除此属性。

    【讨论】:

    • 但是文件所有者是root,cpanel如何删除它,除非cpanel是用root权限打开的
    • 如前所述:即使我无权更改文件,我也可以删除文件。您只能对文件本身设置读/写/执行权限。如果要删除它,请修改包含该文件的目录。文件本身没有被修改。听起来很奇怪,但效果很好。如果您使用 shell 来检查它,您可能会收到一条警告,提示您要擦除写保护文件。但是您仍然可以通过忽略警告来做到这一点。这只是一个方便的警告;)
    猜你喜欢
    • 2015-11-02
    • 2019-03-14
    • 1970-01-01
    • 2013-05-27
    • 2019-03-23
    • 2015-04-08
    • 2013-08-23
    • 1970-01-01
    • 2015-03-24
    相关资源
    最近更新 更多