将文件所有权更改为 root 但原始用户仍然可以编辑文件?
Changed file ownership to root but original user can still edit the file?
我运行以下命令:
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
如果编辑器使用 "erase old file + write new file" 而不是 "modify existing file",这就完美了。如果是这样,则必须更改包含目录的权限以防止用户删除该文件。
删除文件不依赖于文件的权限!
在 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
手册页:
A file with the 'i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
我运行以下命令:
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
如果编辑器使用 "erase old file + write new file" 而不是 "modify existing file",这就完美了。如果是这样,则必须更改包含目录的权限以防止用户删除该文件。
删除文件不依赖于文件的权限!
在 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
手册页:
A file with the 'i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.