每次启动时都缺少组

Eri*_*rik 11 users permissions group

注销并重新登录并不能解决此问题。重新启动并不能解决这个问题。

注意:请不要将此问题标记为重复,我知道这个问题:我将一个用户添加到一个组,但文件的组权限仍然无效,并且已经多次尝试这些事情。


我已使用 将我的用户帐户添加到某些组usermod -aG,但是我无法访问与该组关联的任何资源。我可以使用 解决此问题sudo su - $USER,但这仅适用于我当前的终端会话。

示例终端会话:

$ id
uid=1008(erik) gid=1009(erik) groups=1009(erik)
$ echo $USER
erik
$ sudo su - $USER
[sudo] password for erik: 
$ id
uid=1008(erik) gid=1009(erik) groups=1009(erik),27(sudo),100(users),999(docker),1001(rvm)
Run Code Online (Sandbox Code Playgroud)

每次打开终端时我都必须这样做。重新启动并不能解决这个问题。

有什么方法可以让我在登录时获得分配给我的所有组?

发行版:Ubuntu 16.04 x64 用户 Catscrash 报告了与 Ubuntu 18.04 相同的问题


这似乎只发生在我在桌面上打开终端时。如果我通过 ssh 连接到机器或切换到 TTY(例如 ctrl+alt+F2),那么我会得到正确的组。

$ id
uid=1008(erik) gid=1009(erik) groups=1009(erik)
$ ssh localhost
erik@localhost's password: 
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-131-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 packages can be updated.
0 updates are security updates.

----------------------------------------------------------------
  Ubuntu 16.04.2 LTS                          built 2017-04-20
----------------------------------------------------------------
Last login: Thu Jul 26 09:18:38 2018 from ::1
$ id
uid=1008(erik) gid=1009(erik) groups=1009(erik),27(sudo),100(users),999(docker),1001(rvm)
$ 
Run Code Online (Sandbox Code Playgroud)

当前使用 XFCE 作为我的桌面环境。我也安装了 KDE。

我已经尝试了将终端作为登录 shell 启动的两种可能值 - 两者都没有任何区别。


我尝试通过禁用 apparmorsudo systemctl disable apparmor并重新启动。重新启动后,由于我安装了 docker,它仍然使用 docker 配置文件加载 apparmor。所以另外我尝试禁用 docker:sudo systemctl disable docker然后重新启动。

在此之后,apparmor_status 的输出是:

$ sudo apparmor_status
apparmor module is loaded.
0 profiles are loaded.
0 profiles are in enforce mode.
0 profiles are in complain mode.
0 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
Run Code Online (Sandbox Code Playgroud)

所以,这意味着它已加载但没有做任何事情?

无论哪种方式,它都不能解决问题。我仍然无法访问我应该拥有组权限的任何资源。

还有其他想法吗?

Cat*_*ash 6

更新2:

这似乎是一个 lightdm / kwallet 错误,请参见此处:https ://bugs.launchpad.net/lightdm/+bug/1781418和此处:https ://bugzilla.redhat.com/show_bug.cgi?id=1581495

注释掉

auth optional pam_kwallet.so
auth optional pam_kwallet5.so
Run Code Online (Sandbox Code Playgroud)

#auth optional pam_kwallet.so
#auth optional pam_kwallet5.so
Run Code Online (Sandbox Code Playgroud)

在 /etc/pam.d/lightdm - 正如上面链接中所建议的,现在解决了这个问题。


更新:

这似乎是 lightdm 的问题。切换到 GDM 暂时为我解决了这个问题。仍然不知道 lightdm 有什么问题。


我有完全相同的问题(Ubuntu 18.04)。我还没有解决方案,但我注意到,当我通过 ssh 或文本控制台登录时,一切都是正确的,但当我在桌面环境中打开终端模拟器时却没有。这对你来说是一样的吗?也许它与一些 pam 文件有关?

也很奇怪:正确的是:

uid=1000(catscrash) gid=1000(catscrash) Gruppen=1000(catscrash),4(adm),6(disk),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),132(vboxusers),136(libvirtd)
Run Code Online (Sandbox Code Playgroud)

错的是

uid=1000(catscrash) gid=1000(catscrash) Gruppen=1000(catscrash)
Run Code Online (Sandbox Code Playgroud)

现在我可以做

catscrash@catscrash-desktop ~ % newgrp adm
catscrash@catscrash-desktop ~ % newgrp catscrash
catscrash@catscrash-desktop ~ % id
uid=1000(catscrash) gid=1000(catscrash) Gruppen=1000(catscrash),4(adm)
catscrash@catscrash-desktop ~ % newgrp sudo
catscrash@catscrash-desktop ~ % id
uid=1000(catscrash) gid=27(sudo) Gruppen=27(sudo),4(adm),1000(catscrash)
catscrash@catscrash-desktop ~ % newgrp catscrash
catscrash@catscrash-desktop ~ % id
uid=1000(catscrash) gid=1000(catscrash) Gruppen=1000(catscrash),4(adm),27(sudo)
catscrash@catscrash-desktop ~ %                                                                                                                                                                                                          
Run Code Online (Sandbox Code Playgroud)

所以它肯定知道我的组,因为我不能对我不在的组这样做,一旦我改变了主要组并返回,这些组就会出现......很奇怪!

我还注意到,这仅发生在 KDE / Plasmashell 中,这对您来说是一样的吗?通过 gnome shell 登录时一切正常。