Bug#851243: libpam-systemd: pam_systemd does not catch supplementary groups from pam_group

Juha Erkkilä Juha.Erkkila at opinsys.fi
Fri Jan 13 09:33:43 GMT 2017


Package: libpam-systemd
Version: 232-8
Severity: normal

Dear Maintainer,

pam_group.so provides a mechanism to add users to supplementary groups
via configurations from /etc/security/group.conf.  This mechanism
works only partially to user desktop processes when logging in through
gdm.  It may not be that systemd is here to blame, but my suspicion
is that the systemd user instance is the most relevant component here.

To reproduce, install recent Debian Stretch with GDM and Gnome desktop.
Configure pam_group.so active by adding the following line to
/etc/pam.d/common-auth (as the last line):

auth	optional	pam_group.so

Then configure pam_group to add users to "dialout"-group (any other
group should be fine, as long as user does not belong to that group
through any other mechanism).  Add the following lines to
/etc/security/group.conf:

gdm-password;*;*;Al0000-2400;dialout
sshd;*;*;Al0000-2400;dialout

The "sshd" line is here only for comparative testing to verify that
pam_group works correctly.  When logging in through ssh, the user logging
in should now have the "dialout"-group as one supplementary group,
which can be verified like this:

opinsys at the-best:~$ groups
opinsys cdrom floppy audio dip video plugdev netdev bluetooth lpadmin scanner
opinsys at the-best:~$ ssh opinsys at localhost groups
opinsys at localhost's password: 
opinsys dialout cdrom floppy audio dip video plugdev netdev bluetooth lpadmin scanner

However, when logging in through gdm, only some of the processes belong
to the "dialout"-group.  To reproduce, login to Gnome desktop through
gdm, and then start up a gnome-terminal through Alt+F2 and writing
"gnome-terminal".  Also start up an xterm from the terminal.  Start up
another xterm by writing Alt+F2 + "xterm".  Now the situation is strange,
because "gnome-terminal", and the "xterm" do *not* have "dialout" as
a supplementary group, but the "xterm" that was started through Alt+F2
actually has!  See the situation through "ps":

opinsys at the-best:~$ getent group dialout
dialout:x:20:
opinsys at the-best:~$ ps -U $USER -o comm,pid,ppid,supgid
COMMAND           PID  PPID SUPGID
systemd          1111     1 24,25,29,30,44,46,108,114,115,119,1000
(sd-pam)         1112  1111 -
dbus-daemon      1129  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfsd            1212  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfsd-fuse       1217  1111 24,25,29,30,44,46,108,114,115,119,1000
pulseaudio       1233     1 24,25,29,30,44,46,108,114,115,119,1000
gnome-shell-cal  1241  1111 24,25,29,30,44,46,108,114,115,119,1000
evolution-sourc  1248  1111 24,25,29,30,44,46,108,114,115,119,1000
mission-control  1256  1111 24,25,29,30,44,46,108,114,115,119,1000
goa-daemon       1259  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfs-udisks2-vo  1260  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfs-mtp-volume  1277  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfs-afc-volume  1281  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfs-gphoto2-vo  1286  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfs-goa-volume  1290  1111 24,25,29,30,44,46,108,114,115,119,1000
goa-identity-se  1300  1111 24,25,29,30,44,46,108,114,115,119,1000
evolution-calen  1328  1111 24,25,29,30,44,46,108,114,115,119,1000
tracker-store    1355  1111 24,25,29,30,44,46,108,114,115,119,1000
evolution-calen  1390  1328 24,25,29,30,44,46,108,114,115,119,1000
dconf-service    1398  1111 24,25,29,30,44,46,108,114,115,119,1000
evolution-calen  1402  1328 24,25,29,30,44,46,108,114,115,119,1000
evolution-addre  1427  1111 24,25,29,30,44,46,108,114,115,119,1000
evolution-addre  1438  1427 24,25,29,30,44,46,108,114,115,119,1000
gvfsd-trash      1525  1111 24,25,29,30,44,46,108,114,115,119,1000
gconfd-2         1558  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfsd-burn       1614  1111 24,25,29,30,44,46,108,114,115,119,1000
gvfsd-metadata   1645  1111 24,25,29,30,44,46,108,114,115,119,1000
gnome-keyring-d 11391     1 20,24,25,29,30,44,46,108,114,115,119,1000
gdm-x-session   11394 11386 20,24,25,29,30,44,46,108,114,115,119,1000
Xorg            11396 11394 20,24,25,29,30,44,46,108,114,115,119,1000
gnome-session-b 11403 11394 20,24,25,29,30,44,46,108,114,115,119,1000
xbrlapi         11439 11403 20,24,25,29,30,44,46,108,114,115,119,1000
at-spi-bus-laun 11456  1111 24,25,29,30,44,46,108,114,115,119,1000
dbus-daemon     11461 11456 24,25,29,30,44,46,108,114,115,119,1000
at-spi2-registr 11463  1111 24,25,29,30,44,46,108,114,115,119,1000
gnome-shell     11480 11403 20,24,25,29,30,44,46,108,114,115,119,1000
gnome-settings- 11498 11403 20,24,25,29,30,44,46,108,114,115,119,1000
gnome-software  11515 11403 20,24,25,29,30,44,46,108,114,115,119,1000
tracker-extract 11516 11403 20,24,25,29,30,44,46,108,114,115,119,1000
tracker-miner-a 11518 11403 20,24,25,29,30,44,46,108,114,115,119,1000
tracker-miner-u 11519 11403 20,24,25,29,30,44,46,108,114,115,119,1000
evolution-alarm 11523 11403 20,24,25,29,30,44,46,108,114,115,119,1000
tracker-miner-f 11539 11403 20,24,25,29,30,44,46,108,114,115,119,1000
gsd-printer     11564     1 20,24,25,29,30,44,46,108,114,115,119,1000
gnome-terminal- 11606  1111 24,25,29,30,44,46,108,114,115,119,1000
bash            11612 11606 24,25,29,30,44,46,108,114,115,119,1000
xterm           11769 11612 24,25,29,30,44,46,108,114,115,119,1000
bash            11771 11769 24,25,29,30,44,46,108,114,115,119,1000
xterm           11778 11480 20,24,25,29,30,44,46,108,114,115,119,1000
bash            11780 11778 20,24,25,29,30,44,46,108,114,115,119,1000
sh              11785 11612 24,25,29,30,44,46,108,114,115,119,1000
tee             11786 11612 24,25,29,30,44,46,108,114,115,119,1000
ps              11787 11785 24,25,29,30,44,46,108,114,115,119,1000

Here, the processes "systemd", "pulseaudio" and their descendants
are lacking the "dialout" (20) group, but "gnome-keyring-daemon",
"gdm-x-session" and some others do have it.  See also the "xterm"
groups.

This should not be, I think the groups set up by pam_group.so
should be effective for *all* user processes.

This bug is not Gnome-session dependent, I could reproduce the issue also
with the "i3" window manager.  I do not think pam_group is here to blame.
It might be an issue with gdm, through, but, because the "systemd"
user instance did not catch the groups, the problem is somewhere there.

I found one bug report which appears to be on the
same issue: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=756458
However, I suspect it may be a configuration error, because
the service rule in /etc/security/group.conf does not match
what gdm currently uses.

Juha

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.7.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fi_FI.UTF-8, LC_CTYPE=fi_FI.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libpam-systemd depends on:
ii  dbus            1.10.14-1
ii  libc6           2.24-8
ii  libpam-runtime  1.1.8-3.4
ii  libpam0g        1.1.8-3.4
ii  libselinux1     2.6-3
ii  systemd         232-8
ii  systemd-sysv    232-8

libpam-systemd recommends no packages.

libpam-systemd suggests no packages.

-- no debconf information



More information about the Pkg-systemd-maintainers mailing list