From: Lennart Poettering Date: Tue, 19 Jun 2012 15:25:28 +0000 (+0200) Subject: login: initialize XDG_RUNTIME_DIR as /run/user/$UID instead of /run/user/$USER X-Git-Tag: v186~142 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=2138e96918c7ed6fbf31f5df509f337a1973dfdd;ds=sidebyside login: initialize XDG_RUNTIME_DIR as /run/user/$UID instead of /run/user/$USER The sssd folks would like to place the kerberos credential cache in XDG_RUNTIME_DIR, but need to do that in the PAM auth hooks, before pam_systemd is run as part of the PAM session setup. Hence, in order to make this easy for them: avoid usage of usernames, and use user IDs instead thus making an additional NSS lookup unnecessary in the kerberos bits, but still have the directory well-defined so that the kerberos bits can determine it before pam_systemd is run. --- diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 4622812e3..0a3f22ce9 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -259,9 +259,7 @@ static int user_mkdir_runtime_path(User *u) { } if (!u->runtime_path) { - p = strappend("/run/user/", u->name); - - if (!p) { + if (asprintf(&p, "/run/user/%lu", (unsigned long) u->uid) < 0) { log_error("Out of memory"); return -ENOMEM; }