我运行了以下命令:
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用户已经拥有的文件?
答案 0 :(得分:1)
在文件上使用chattr
使其不可变。
sudo chattr +i file.php
答案 1 :(得分:0)
如果编辑器使用“擦除旧文件+写入新文件”而不是“修改现有文件”,则效果很好。如果是这样,则必须更改包含目录的权限,以防止用户擦除文件。
删除文件并不取决于文件的权限!
在shell中试用:
> touch bla
> chmod 000 bla
> sudo chown root:root bla
> rm bla
... maybe a warning ...
但是文件将被删除!
因为此chown
和chmod
不能帮助文件,但不能帮助包含目录。
在诸如ext2,ext3和最常见的较新版本的文件系统上,可以使用chattr
来保护更多属性。
> sudo chattr +i bla
> lsattr bla
在chattr
手册页中:
具有'i'属性的文件无法修改:无法删除或重命名,无法创建与此文件的链接,也不能将任何数据写入该文件。只有超级用户或拥有CAP_LINUX_IMMUTABLE功能的进程才能设置或清除此属性。