答案1
非常黑客,但你可以使用两层来newgrp
实现针对特定群体的这一目标:
id -g
...将为您提供当前的主要组 ID。我们将orig_group
以此为例进行说明。然后:
newgrp <new_group_name>
groups
...将把您切换到该组作为主组,并将其添加到或返回的组列表中id -G
。现在,进一步:
newgrp <orig_group_name>
...将为你提供一个 shell,你可以在其中看到新组,并且主要组是原始组。
这很糟糕,一次只能添加一个组,但是它帮助我几次添加组而无需退出/登录我的整个 X 会话(例如,将 fuse 作为组添加到用户,以便 sshfs 可以工作)。
笔记:
这也不需要你输入密码,这
su
将每次调用都会
newgrp
启动一个新 shell(作为当前 shell 的子 shell)当前 shell 可以用以下
exec
命令“替换”exec newgrp <new_group_name>
使用
exec
将解决当前分支的缓存问题pstree
即,如果您登录到窗口管理器,您启动的每个新终端都将成为比此练习“更正”的分支更早的分支的子分支,因此将继承缓存的 gid 映射。
答案2
在 shell 中,你可以发出以下命令
su - $USER
id 现在将列出新组:
id