我创build了3个用户'u1','u2','u3'。 现在我想提供访问u1的/ home / u1 / share目录下的用户u2,u3。
我不想创build一个名为“共享”的新通用组,并在那里添加3个用户。 有没有可能使用'u1'组本身?
到目前为止我尝试过
#add u2,u3 to group of u1 usermod -a -G u1 u2 usermod -a -G u1 u3 #ensure u1 has group read access chmod 750 /home/u1 #create new shared dirs umask 027 && mkdir /home/u1/share
虽然
ls -ld /home/u1/share drwxr-x---. 2 u1 u1 4096 Apr 23 10:11 /home/u1/share
显示对组的读取访问 – 用户u2无法访问此目录。
[u2@ ~]$ ls -l /home/u1/share ls: cannot access /home/u1/share: Permission denied
对此有何想法? 我在哪里做错了?
你所做的应该没问题,但是由于你运行了usermod,用户u2已经注销了吗? 只有在login时才会收到组会员资格。
为u2做一个id -a还可以帮助确认这个特定的u2 shell是否在u1组中。
尽pipe我不同意Hauke关于ACL的看法(在这种情况下它们当然不是必须的,因为正如你们已经certificate的那样,它可以通过组来完成;我发现ACL几乎不是真正需要的,而且这种令人难以置信的痛苦即使在奇怪的情况下,我通常build议人们改变他们的要求),我同意这是一个新的自定义组的完美案例。
您需要ACL来解决权限问题。 您必须为每个目录提供组写入访问权限,并且必须为它们设置默认ACL(以防用户应该能够创build子目录):
setfacl -d -mg:u1:rwx "$directory"
或者改为
setfacl -d -mg::rwx "$directory"
如果通过SGID位确保新创build的子目录属于同一个组。
我不认为你的决定不是build立一个新的团队一个好主意。