如何在 Linux 上提供写权限的同时阻止用户重命名文件

如何在 Linux 上提供写权限的同时阻止用户重命名文件

出于某些特殊目的,我想阻止 Linux 服务器的非 root 用户更改或重命名文件名。但是,他们可以修改和写入文件的内容。如何从命令行执行此操作。

答案1

引用史蒂芬·查泽拉斯这个关于 Unix 和 Linux SE 的答案

要重命名文件,文件的写入权限无关紧要,重命名文件是对目录的更改,而不是对文件的更改。这是将目录条目更改为指向文件的不同名称。

因此,您需要做的就是更改目录的权限。例如:

chown root: .
chmod 755 .

这将阻止用户重命名其中的文件,也阻止用户创建或删除文件。如果您仍希望他们能够这样做,您可以改为使目录可写,但同时设置位 t。设置该位后,用户(不受限制的目录所有者除外)只能删除或重命名他们拥有的文件。

chown root:people-who-can-create-file-here .
chmod 1775 .
chown root:people-who-can-modify-the-files file1-that-must-not-be-rename ...
chmod 664 file1-that-must-not-be-rename ...

答案2

chmod +t [FILE]

它设定了粘着位,其功能正如您所描述的那样。

编辑:嗯,更具体地说,它可以防止其他用户重命名文件。所以具体要看你想要什么。

相关内容