为什么 id-tool 不显示最新添加的组?

为什么 id-tool 不显示最新添加的组?

我想将自己添加到名为 vboxusers 的组,但发生了以下情况:

在做任何事情之前我们先看看它是什么样子的:

$ id
uid=1001(me) gid=1001(me) groups=1001(me),4(adm),27(sudo),109(lpadmin),124(sambashare)
$ cat /etc/group | grep me
adm:x:4:me
sudo:x:27:me
lpadmin:x:109:me
me:x:1001:

然后我将自己添加到了该组并再次检查:

$ sudo usermod -aG vboxusers me
$ id
uid=1001(me) gid=1001(me) groups=1001(me),4(adm),27(sudo),109(lpadmin),124(sambashare)
$ cat /etc/group | grep me
adm:x:4:me
sudo:x:27:me
lpadmin:x:109:me
me:x:1001:
vboxusers:x:126:me

id仍然没有将我列为该组的成员,而我确实在 中写入了正确的内容/etc/groups。发生了什么事?我该怎么做id才能识别它?

(仅启动一个新 shell 不会改变任何东西)

答案1

id显示有关调用它的进程的信息(或者更准确地说,它显示有关它自身的信息,这些信息是从调用它的进程继承的)。组数据库仅在登录时查询,并且它仅影响从该登录会话派生的进程。登录进程被授予组数据库中列出的组,所有其他进程都从其父进程继承。

启动新的 shell 没有什么区别,您需要注销并重新登录。您可以通过在另一个控制台中登录或使用ssh localhost或使用 来测试您的更改su me

您可以使用 查询组数据库getent group vboxusers。除非您的计算机使用 NIS 或 LDAP 从网络服务器获取用户和组信息,否则这将提供与 相同的信息grep '^vboxusers:' /etc/group。同样,此信息告诉您登录时发生的情况,之后不再参考。

相关内容