目标:在根目录上创建一个文件夹,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
的文件。
第二个有用的权限是sgid
bit,它使目录的组应用于目录中新创建的文件:
chmod g+s /project1
要将两者结合起来,请运行
chmod 3770 /project1
有关详细信息,请参阅了解 UNIX 权限和文件类型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句