将文件所有权更改为root,但原始用户仍然可以编辑文件



我运行了以下命令:

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用户已经拥有的文件?

对文件使用chattr使其不可变。

sudo chattr +i file.php

如果编辑器使用"擦除旧文件+写入新文件"而不是"修改现有文件",这将非常有效。如果是,则必须更改包含目录的权限,以防止用户擦除该文件。

删除文件不取决于该文件的权限!

在外壳中试用:

> 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_LNUX_IMMUTABLE功能的超级用户或进程才能设置或清除此属性。

相关内容

最新更新