`groups` 和 `groups $USER` 显示不同的组(缺少 dialout)

`groups` 和 `groups $USER` 显示不同的组(缺少 dialout)

我在打开 USB 端口时遇到问题/dev/ttyUSB0

此端口的设备节点是:

crw-rw---- 1 root dialout 188, 0 juil. 25 17:18 /dev/ttyUSB0

看来groups指挥和小组出了问题dialout

doom@doom-PC:~$ groups
doom adm cdrom sudo dip plugdev lpadmin sambashare
doom@doom-PC:~$ whoami
doom
doom@doom-PC:~$ groups doom
doom : doom adm dialout cdrom sudo dip plugdev lpadmin sambashare
doom@doom-PC:~$ groups $USER
doom : doom adm dialout cdrom sudo dip plugdev lpadmin sambashare

因为我很绝望,为什么命令没有在输出中groups显示该组?dialout

那么,为什么我不能这样做:

doom@doom-PC:~$ touch /dev/ttyUSB0 
touch: cannot touch '/dev/ttyUSB0': Permission denied

确实认为两者密切相关!

这是在 Ubuntu 18.04 LTS 上。

附言:如果我这样做newgrp dialout,它会起作用,但它不是持久的(并且不方便用户使用)。

答案1

总结:退出并重新登录就足够了。

这是预期的行为。具体来说,当用户被添加到组时,该用户的现存的会话继续表现得好像用户不在该组中一样。这几乎总是发生在用户Xgroups在和中可以看到不同的组列表。没有用户名参数的命令会显示适用的组groups Xgroups到运行它的会话

正如你观察到的,重新启动可以,但是注销并重新登录就足够了。实际上,甚至注销也是不必要的,因为即使之前的登录仍然有效,后续登录仍具有组成员的身份和权限。

请注意,Ubuntu 终端窗口中的 shell 是不是登录 shell(与某些操作系统不同,例如 macOS),因此打开新的终端窗口或选项卡没有效果。

newgrp确实既不持久,也不太方便用户使用。但它主要适用于需要暂时以群组身份登录的情况。以后登录时就不必运行它了。

答案2

重启后问题解决!

相关内容