XDG_RUNTIME_DIR
ist notwendig, um systemctl --user
zu arbeiten.
Ich habe Ubuntu Server 16.04 eingerichtet, um systemd Benutzersitzungen auszuführen. Wenn ich versuche, sie zu verwalten, stelle ich fest, dass beim Ändern eines Benutzers über sudo -u $user -i
oder sogar su - $user
die Umgebung nicht XDG_RUNTIME_DIR
festgelegt wurde, was das systemctl --user
Arbeiten verhindert. Wenn ich jedoch ssh
direkt in diesen Benutzer hineinkomme, ist er richtig eingestellt.
Wenn ich die Dokumentation richtig verstehe, sollte dies libpam-systemd
beim Erstellen der Benutzersitzung festgelegt werden. Das User Slice wird korrekt gestartet, da das Verzeichnis existiert, auf das XDG_RUNTIME_DIR
point ( /run/users/$uid
) verweisen soll . Ich zögere, es einfach fest einzuschreiben, sagen wir .bash_profile
mal, weil das kitschig erscheint (obwohl es funktioniert), wenn Pam sich darum kümmern sollte.
Ich kann natürlich, fügen Sie XDG_RUNTIME_DIR
zu env_keep
in sudoers
, aber das würde bewahren nur die Umgebung des sudoing Benutzer, die nicht das, was ich will. Ich mag die Zielumgebung des Benutzers.
Was mich allerdings wirklich wundert, ist, wie kommt es, dass die Sitzung korrekt mit ssh
, aber nicht mit su
oder eingerichtet ist sudo -i
?
XDG_RUNTIME_DIR
fürsudo
Sitzungen festgelegt. Ich denke, dann~/.profile
ist es nicht so abgedreht, wie ich dachte.https://github.com/systemd/systemd/issues/7451#issuecomment-346787237
quelle