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

Reply via email to