设置文件和文件夹的权限 - 文件夹权限继承总是隐式的吗?

戴夫戴夫

目标:在根目录上创建一个文件夹,chown 来分组并将用户添加到组中 - 但用户获得的权限太广!

考虑以下:

# as root

# we need a user group
groupadd team1

# we need a shared folder
mkdir /project1
chown root:team1 /project1
chmod 770 /project1

# we need users - and they get set pw elsewhere :)
for i in bob tina jim joy; do useradd $i; done

# we add them to the project group 'team1' that gives access to the shared folder
usermod -aG team1 [username]

令人费解的是,用户jim可以在其中创建文件/project1,用户joy可以在 vim 中打开、更改和保存文件或尝试删除文件,这将在确认这是意图后执行。

问题:这被认为是正确的行为吗?不应chmod 770 /project1仅限于文件夹本身的权限,但不应仅限于:递归到所述文件夹中的文件?

斯蒂芬·基特

这是正常行为。

目录的 770 权限允许目录的所有者和目录组的任何成员读取、写入和搜索目录。这意味着该组的任何成员都可以删除目录中的文件并创建新文件,而与文件本身的权限和所有权无关。这就是你所看到的;jim对文件设置的任何权限joy都可以删除它并用另一个替换它,这就是vim

您可以在标准 Unix 权限模型中对目录设置其他权限。

这里第一个有用的是粘滞位,它限制删除:文件只能由其所有者、目录所有者或root.

chmod g+t /project1

会设置它,然后joy将无法删除jim的文件。

第二个有用的权限是sgidbit,它使目录的组应用于目录中新创建的文件:

chmod g+s /project1

要将两者结合起来,请运行

chmod 3770 /project1

有关详细信息,请参阅了解 UNIX 权限和文件类型

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章