授予目录“rwx”权限,但不希望用户授予 mkdir 和 touch 权限

授予目录“rwx”权限,但不希望用户授予 mkdir 和 touch 权限

我创建了一个名为的目录demo,并授予名为的用户读取、写入和执行权限demoUser

我希望用户能够读取、写入和执行demo目录中的文件,但不能删除任何文件。这可能吗?

我尝试了一种技术,创建了 3 个组:reader和。我使用editor以下方法admin授予组读取权限reader和编辑权限editor

setfacl OPTION X:NAME:Y /DIRECTORY

现在我添加到了组demoUsereditor。用户可以读取,写入和执行文件,但也可以删除文件。

有没有什么办法demoUser可以不删除文件?

答案1

粘滞位是设置在文件或目录上的权限位,允许仅限用户/所有者文件/目录或根用户删除或重命名文件,即使通过组所有权授予了写入权限

粘性位可以通过以下方式设置:

chmod +t /directoryname

此后,具有写权限的用户将无法删除该文件夹内的文件除非他们自己创建了文件/文件夹。您还可以使该文件夹中的所有文件继承组所有权,方法是:

chmod g+s /directoryname

我刚刚做了一个小测试以确保万无一失。我创建了一个名为 的文件夹testfolder,其所有权为root:user1。我设置了775权限 ( rwxrwxrw),然后运行:

sudo chmod +t testfolder

给它粘性位,并且:

sudo chmod g+s testfolder

使新文件继承组所有权。

之后,我以 的身份登录user2,它是 的组成员user1。我进入文件夹并尝试删除testfile具有rwx组 权限的user1。由于user2是该组的成员,他们应该有权限删除它,但他们没有。权限被拒绝。

之后,我决定删除粘性位,使用:

sudo chmod -t testfolder

然后再次尝试删除该文件。成功了。

不确定这是否是您想要的,因为您不希望用户使用touchmkdir。这只会禁止他们删除内容,同时保持写入。

相关内容