允许所有用户在目录中创建文件,但只有所有者可以删除

允许所有用户在目录中创建文件,但只有所有者可以删除

我该如何使用,最好是一个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/

相关内容