更改用户的主要组 - 在该组中创建新文件

Modified on: Sun, 10 Jun 2018 04:36:53 +0800

我正在建立一个环境,我在服务器上为多个用户提供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位。这些我正在寻找的东西。这适用于我创建的新用户,但对我的用户不起作用。我不确定发生了什么,但现在工作正常。我刚才把这个问题留给了未来的修补匠。

作者:Flyk,Huckle

最佳答案

我猜你想要的行为是sudo usermod -g groupname myuser

注意:该命令会更改$ 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
作者:,Panther

相关问答

添加新评论