我该如何使用,最好是一个chmod
命令,它允许任何用户在目录中创建文件,但只有文件的所有者(创建它的用户)可以删除自己的文件,但该目录中没有其他人。
我想使用:
chmod 755 directory
既然用户可以创建文件并删除它,但是这是否允许用户删除其他人的文件呢?
我只希望创建该文件的人能够删除自己的文件。因此,任何人都可以创建文件,但只有创建文件的人才能删除该文件(在目录中)。
答案1
粘性位或多或少可以做你想做的事情。从man 1 chmod
:
限制删除标志或粘性位是单个位,其解释取决于文件类型。对于目录,它可以防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录;这称为目录的限制删除标志,通常在 /tmp 等全局可写目录中找到。
也就是说,如果用户是文件的所有者或包含目录的所有者(或者用户是 root),则目录上存在的粘滞位仅允许重命名或删除所包含的文件。
您可以应用粘性位(由八进制 1000 或 表示t
),如下所示:
# instead of your chmod 755
chmod 1777 directory
# or, to add the bit to an existing directory
chmod o+t directory
答案2
大多数/tmp
目录都是使用这种类型的权限集创建的。
你想要世界“粘”一点。设置该位的符号方式是:
# chmod ugo+w,+t directory
“模态”方式是:
# chmod 1777 directory
# ls -ld directory
drwxrwxrwt 2 root wheel 2 Oct 21 17:06 directory/