如何注销并应用新的组设置

如何注销并应用新的组设置

有人可以告诉我如何通过命令行注销并重新登录,以便我可以将新组的设置应用于用户。为了正确看待这一点,假设我当前以 testuseraccount 身份登录,然后向终端发出以下命令。

su
usermod -aG sudo testuseraccount

所以我相信通过输入 su 这会让我进入 root (但只是在 shell 内)。那么如何通过终端注销 root,然后注销 testuseraccount 并重新登录(以便将 sudo 组应用到 testusersaccount)?

答案1

您无法更改现有进程的组 ID,这意味着一种方法是重新启动它们。子进程继承父进程的组 ID,因此您无法影响在桌面环境(菜单...)中启动的程序。

在给定的 shell 中,使用该newgrp命令以新的有效组 ID 启动新的 shell:

> id
uid=1000(user) gid=100(users) groups=100(users),92(audio)
> newgrp audio
> id
uid=1000(user) gid=92(audio) groups=92(audio),100(users)

从该 shell 启动的任何进程都将具有新的有效组 ID(audio在本例中)。

如果您已将新用户添加到组中,这将在用户启动新进程后再次生效。

因此,如果您希望启动新的 X(图形登录)会话,您需要完全退出前一个会话,然后通过登录启动新会话。除非启用了无密码登录,否则通过登录屏幕(通过 XDM/GDM/KDM)不可能在注销后重新登录而无需交互(没有人推荐)。原因之一是在注销期间,用户的所有进程都将被终止,因此没有留下任何进程来启动您登录。

我预计可能会创建解决方法,但会“丑陋”。

相关内容