在设置了粘性位的目录中创建/删除文件所需的权限

在设置了粘性位的目录中创建/删除文件所需的权限

我了解从设置了粘性位的目录中创建/删除文件需要以下操作之一

  • 你是根
  • 您是该文件的所有者
  • 您是该目录的所有者

并且您还必须+w在目录中。

问题出+x在目录上。据我所知,如果未设置目录的粘性位,+x则需要在其中创建/删除文件。然而,我的教授说,如果设置了粘性位,则+x不需要。

我在 Ubuntu 16.04 上尝试过,+x即使设置了粘性位,似乎仍然需要它。

Bob@david-VirtualBox:/home/Alice$ ls -ld InBox/
drwx----wT 2 Alice Alice 4096 十一  7 01:09 InBox/
Bob@david-VirtualBox:/home/Alice$ touch InBox/some_file
touch: cannot touch 'InBox/some_file': Permission denied
Bob@david-VirtualBox:/home/Alice$ rm InBox/link
rm: cannot remove 'InBox/link': Permission denied
Bob@david-VirtualBox:/home/Alice$ su Alice
Password: 
Alice@david-VirtualBox:~$ chmod 1703 InBox/
Alice@david-VirtualBox:~$ su Bob
Password: 
Bob@david-VirtualBox:/home/Alice$ touch InBox/some_file
Bob@david-VirtualBox:/home/Alice$ rm InBox/link
Bob@david-VirtualBox:/home/Alice$ 

我的问题

  1. 这种行为在不同的发行版中是否一致或在某些标准中有所描述?
  2. 我尝试谷歌,但大多数关于目录粘性位的资源都强调上述三点。我想知道我的教授这么说是否有一些(历史上的?)原因。

如果有人问,我会直接问我的教授是否回复我的电子邮件:(

先感谢您。

答案1

你的教授错了:

如果您想从目录中删除某些内容,您需要所谓的“搜索权限”,这是由目录上的 x 位授予的。

如果没有 x 位,则无法验证要删除的文件是否存在。

相关内容