我正在设置一个环境,在该环境中为服务器上的多个用户提供SSH访问权限。它们都是可信任的,但是我想将它们合并到文件系统的一部分中。我这样创建用户:
adduser username -ingroup groupname
效果很好。当我以其中之一身份登录时,可以执行此操作并获得所有正确的答案:
$id -r -u -n
username
$id -r -g -n
groupname
groupname
通过执行以下操作,我将自己的用户帐户的主要组切换为:
$usermod myuser groupname
然后,我注销并重新登录。现在,我希望该组能够访问的文件位于以下位置:
$ls -l / | grep groupname
drwxr-xr-x 3 root groupname 4.0K 2012-03-26 20:20 groupfiles
$cd /groupfiles
$ls -l
drwxrwxr-x 2 root groupname 4.0K 2012-03-26 20:32 project
权限是有意设计的,该组的成员不能更改下的文件/文件夹,/groupfiles
但可以在下的位置添加,编辑和删除。/groupfiles/project
我遇到的问题是,当我这样做时,我得到了错误的组:
$touch test
$ls -l test
-rw-rw-r-- 1 myuser myuser 0 2012-03-26 20:58 test
$id -r -g -n
groupname
我需要使vim,touch等创建的文件具有正确的组。我知道newgrp()
和setgid
位。这些不是我想要的。这对我创建的新用户而言效果很好, 但对我的用户不起作用。 我不确定发生了什么,但是现在工作正常。我只是将这个问题留给以后的修补匠。
我猜你想要的行为是sudo usermod -g groupname myuser
。
注意:该命令更改$ HOME中所有文件的组所有权,但不在home外部。您可能希望将其改回chgrp -R myuser $HOME
然后,您需要注销并重新登录以使更改生效。
如果您不想更改“ myuser”主组,则可以使用newgrp。
sudo usermod -g admin bodhi
ssh localhost
touch file
newgrp bodhi
touch file2
ls -l file file2
-rw-r--r-- 1 bodhi admin 0 2012-03-26 19:28 file
-rw-r--r-- 1 bodhi bodhi 0 2012-03-26 19:29 file2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句