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

Nec*_*twi 9 linux login group

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

-rwxr-xr-x 2 gowtham  gowtham      4096 Sep  5 14:48 defaultNewFile
drwxr-xr-x 2 gowtham  specificgrp  4096 Sep  5 14:50 requiredNewFile
Run Code Online (Sandbox Code Playgroud)

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

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

ger*_*ijk 9

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
Run Code Online (Sandbox Code Playgroud)

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


Gil*_*il' 7

根据您为什么要这样做,可能还有另一种方法。

如果设置了目录权限的 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 .
Run Code Online (Sandbox Code Playgroud)