我怎样才能阻止用户删除文件/文件夹但可以在 Linux 上添加/修改?

我怎样才能阻止用户删除文件/文件夹但可以在 Linux 上添加/修改?

我有一个my_folder包含文件和文件夹的文件夹

my_folder
|-- my_sub_folder
|   |-- my_file_1.txt
|
|-- my_file_2.txt
|-- my_sub_folder_2
|   |-- my_file_2.txt

我想设置权限,让用户可以添加/修改文件和目录,my_folder但不能删除其中的任何内容。这是一种只写权限。

可以这样做吗?

答案1

如果您使目录全世界都可写并在其上设置粘滞位,其他用户将能够创建新文件,但只能对他们拥有的文件具有写访问权限。

man chmod

粘滞位可防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录;这称为目录的受限删除标志,通常在 /tmp 等全球可写目录中找到。

例如,以 root 身份:

# cd my_folder
# find . -type d | xargs chmod 1777 

粘滞位权限显示t如下ls

# ls -ld my_folder
drwxrwxrwt 4 root root 4096 2014-12-01 18:52 my_folder

现在作为普通用户:

$ cd my_folder
$ echo foo > user_file     # ok
$ rm user_file             # ok
$ rm  -f my_sub_folder/my_file_1.txt
rm: cannot remove `my_sub_folder/my_file_1.txt': Operation not permitted

相关内容