18.04加群后注销+登录还不行吗?

Lud*_*lze 30 gnome login groups 18.04

在具有默认桌面的 ubuntu 18.04 中,注销/登录的行为已更改:

以前在 Ubuntu 系统上,当我发现需要将我的用户 ID 添加到某个组时,就足够了

sudo adduser ludwig docker # adds me to group docker
Run Code Online (Sandbox Code Playgroud)

然后我必须注销并再次登录才能使组更改生效。

我注意到在 Ubuntu 18.04 中,添加组并注销并重新登录后,有效组的列表仍然没有变化。

作为一种解决方法,我重新启动了系统,这很不方便(需要在 grub 中进行正确选择并重新输入磁盘加密密码)。

  1. 为什么现在的行为是这样?
  2. 除了重新启动之外,我还可以做其他事情吗?

(我知道我可以 ssh 到 localhost 并仅在 ssh 会话中获取正确的组。这也太不方便了。)

小智 16

该命令loginctl terminate-user <user>对我有用。(替换<user>为您的用户名)您可能不应该在登录时运行它,因为它会杀死您的所有进程。


Lud*_*lze 12

在 ubuntu 18.04 中“注销”默认桌面时,用户的一些进程并没有立即终止,而是徘徊。这些是(由另一个用户观察到):

$ ps axu | grep ^ludwig
ludwig    26508  0.3  0.2  77052  8308 ?        Ss   23:32   0:00 /lib/systemd/systemd --user
ludwig    26509  0.0  0.0 261776  2968 ?        S    23:32   0:00 (sd-pam)
ludwig    26691  0.2  0.3 381288 12204 ?        S<l  23:32   0:00 /usr/bin/pulseaudio --start --log-target=syslog
ludwig    27352  0.0  0.0  49796  3756 ?        Ss   23:33   0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
Run Code Online (Sandbox Code Playgroud)

在这些进程自愿退出之前重新登录时,不会创建新的登录会话,而是重用旧的登录会话。这就是新组成员身份不可见的原因,它仍然是相同的旧登录会话。

避免重新启动的解决方法是在注销后等待约 20 秒,然后才重新登录。注销后进程在 10 到 20 秒之间退出。

编辑:正如下面的评论中所报告的那样,有时即使等待也不会退出挥之不去的过程,并且在重新登录后,组成员资格尚未更新。我发现在这种情况下它有助于

ps axu | grep ^ludwig | awk '{print $2}' | xargs kill -9
Run Code Online (Sandbox Code Playgroud)

替换ludwig为您的用户名。这会杀死所有属于您的进程。仅当您确定已保存所有打开程序中的所有数据时才使用。