我有一个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