newgrp命令用于切换当前用户的有效组。它允许用户在不注销的情况下临时切换到另一个用户组,以便访问该组的文件和目录。
newgrp [组名]
newgrp会启动一个新的shell会话exit命令)假设用户是developers组的成员,可以切换到该组:
$ id
uid=1001(john) gid=1001(john) groups=1001(john),1002(developers)
$ newgrp developers
$ id
uid=1001(john) gid=1002(developers) groups=1001(john),1002(developers)
# 退出返回原组
$ exit
使用groups命令查看用户所属的所有组:
$ groups
john developers webadmin
# 切换到webadmin组
$ newgrp webadmin
$ groups
webadmin developers john
切换到其他组后创建的文件将属于该组:
# 切换前创建文件
$ touch file1.txt
$ ls -l file1.txt
-rw-r--r-- 1 john john 0 Mar 10 10:00 file1.txt
# 切换到developers组后创建文件
$ newgrp developers
$ touch file2.txt
$ ls -l file2.txt
-rw-r--r-- 1 john developers 0 Mar 10 10:01 file2.txt
如果不指定组名,newgrp会切换回用户的登录组:
$ newgrp developers
$ id
gid=1002(developers)
$ newgrp # 切换回主组
$ id
gid=1001(john)
newgrp命令会启动新的子shell,使用exit返回/etc/group中列出的组成员才能切换/etc/login.defs中的ENCRYPT_METHODgroups - 显示用户所属的组id - 显示用户身份信息su - 切换用户sg - 以其他组身份执行命令