What's your $XDG_RUNTIME_DIR environment variable?
My $XDG_RUNTIME_DIR as user gabriel (uid=1000) is "/run/user/0" and
should in my opinion be "/run/user/1000".
If it's /run/user/0, then GLib is behaving as expected, and the bug is
in some other component (which should either not set this variable,
unset this variable when it switches uid, or set this variable to a more
appropriate value for uid 1000).
I agree that Glib is working correctly.
user@machine:~/Work$ echo $XDG_RUNTIME_DIR
/run/user/0
user@machine:~/Work$ ./run
/run/user/0
user@machine:~/Work$ XDG_RUNTIME_DIR=/run/user/1000
user@machine:~/Work$ export XDG_RUNTIME_DIR
user@machine:~/Work$ echo $XDG_RUNTIME_DIR
/run/user/1000
user@machine:~/Work$ ./run
/run/user/1000
user@machine:~/Work$ unset XDG_RUNTIME_DIR
user@machine:~/Work$ ./run
/home/gabriel/.cache
What seems related is the but in gdm3 which fails to start when
libpam-systemd is not installed [1].
libpam-systemd is responsible for creating and setting XDG_RUNTIME_DIR.
So I assume Gabriel didn't have this package installed. Is that correct?
No, libpam-systemd is installed correctly on my system.
user@machine:~/Work$ dpkg -s libpam-systemd
Package: libpam-systemd
Status: install ok installed
Priority: optional
Section: admin
Installed-Size: 64
Maintainer: Debian systemd Maintainers
<pkg-systemd-maintain...@lists.alioth.debian.org>
Architecture: i386
Multi-Arch: same
Source: systemd
Version: 204-5
So from a cursory look, it seems like glib is behaving correctly and as
Simon suspects, some other component simply sets XDG_RUNTIME_DIR to an
incorrect value.
I agree.
Some other relevant info:
* is this in X11 or at a text virtual console?
This is in X11.
* if in X11, which display manager (gdm3, lightdm, xdm, kdm, etc.),
or did you use startx or something from a text virtual console?
Currently I get with gdm3 only a black screen. So my only possibility is
to chmod my /run/user/0 directory. Switch with su - gabriel to my
account and execute startx.
* are you using systemd or sysvinit as your init (process 1)?
# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 init [2]
Should be the good old sysvinit. Never changed to systemd.
* which PAM modules do you have (dpkg-query -W 'libpam*'), and have
you reconfigured the PAM stack or are you using defaults?
# dpkg-query -W 'libpam*'
libpam-cap:i386 1:2.22-1.2
libpam-ck-connector:i386 0.4.6-3+b1
libpam-dev
libpam-doc
libpam-gnome-keyring 3.8.2-2
libpam-mkhomedir
libpam-modules:i386 1.1.3-10
libpam-modules-bin 1.1.3-10
libpam-motd
libpam-mount
libpam-runtime 1.1.3-10
libpam-smbpass
libpam-ssh
libpam-systemd:i386 204-5
libpam-umask
libpam0g:i386 1.1.3-10
libpam0g-dev:i386 1.1.3-10
libpam0g-util
I have found out, if I do login on tty1 and stop gdm3. And do a login on
tty2 direct as user the XDG_RUNTIME_DIR variable is set correctly
"/run/user/1000". I can start X with the command startx without any changes.
But if I switch the user from root with
su - gabriel
the XDG_RUNTIME_DIR variable remains on "/run/user/0".
This could may be an issue for gdm3, when switching user context.
Changed in file /etc/pam.d/common-session
session optional pam_systemd.so
to
session optional pam_systemd.so debug=1
Set following output in /var/log/auth.log
Oct 23 15:08:03 machine su[5608]: Successful su for gabriel by root
Oct 23 15:08:03 machine su[5608]: + /dev/tty1 root:gabriel
Oct 23 15:08:03 machine su[5608]: pam_env(su:session): Unable to open
env file: /etc/environment: Datei oder Verzeichnis nicht gefunden
Oct 23 15:08:03 machine su[5608]: pam_unix(su:session): session opened
for user gabriel by root(uid=0)
Oct 23 15:08:03 machine su[5608]: pam_systemd(su:session): Asking logind
to create session: uid=1000 pid=5608 service=su type=tty class=user
seat=seat0 vtnr=1 tty=/dev/tty1 display= remote=no remote_user=root
remote_host=
Oct 23 15:08:03 machine su[5608]: pam_systemd(su:session): Reply from
logind: id=c1 object_path=/org/freedesktop/login1/session/c1
runtime_path=/run/user/0 session_fd=6 seat=seat0 vtnr=1
Oct 23 15:09:01 machine CRON[5680]: pam_env(cron:session): Unable to
open env file: /etc/environment: Datei oder Verzeichnis nicht gefunden
The runtime_path is set to "/run/user/0".
Don't know if this is correct or wrong.
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org