如何以特定组的成员身份登录

如何以特定组的成员身份登录

我想以非主要组的成员身份登录,以创建其所有者作为当前用户的非主要组的成员的文件。

-rwxr-xr-x 2 gowtham  gowtham      4096 Sep  5 14:48 defaultNewFile
drwxr-xr-x 2 gowtham  specificgrp  4096 Sep  5 14:50 requiredNewFile

我不想在使用 chown 创建文件后更改组所有权。

我对以非主要组成员身份登录更感兴趣。

答案1

newgrp会帮助你的。请参阅下面的演练。应该自己说话。

$ id
uid=1000(gert) gid=1000(gert) groups=1000(gert),4(adm),[...]
$ touch file1
$ newgrp adm
$ id
uid=1000(gert) gid=4(adm) groups=1000(gert),4(adm),[...]
$ touch file2
$ ls -al
[...]
-rw-rw-r--  1 gert gert     0 Nov 23 11:58 file1
-rw-rw-r--  1 gert adm      0 Nov 23 11:59 file2

是的,这会更改主要组,但不会永久更改。仅针对该会话/shell,因此在脚本编写中这不应该成为问题。

答案2

根据您想要这样做的原因,可能还有另一种方法。

如果设置了目录权限的 setgid 位,则在该目录中创建的所有文件将归拥有该目录的同一组所有。

$ chgrp specificgrp .
$ chmod g+s .
$ touch newfile
$ ls -l newfile
-rw-r--r-- 2 gowtham  specificgrp  4096 Sep  5 14:48 newfile
$ ls -ld .
drwxr-sr-x 2 gowtham  specificgrp  4096 Sep  5 14:48 .

答案3

可以使用特定组的成员身份登录 shell

login <username>:<group>

相关内容