XDG_RUNTIME_DIRist notwendig, um systemctl --userzu 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 -ioder sogar su - $userdie Umgebung nicht XDG_RUNTIME_DIRfestgelegt wurde, was das systemctl --userArbeiten verhindert. Wenn ich jedoch sshdirekt in diesen Benutzer hineinkomme, ist er richtig eingestellt.
Wenn ich die Dokumentation richtig verstehe, sollte dies libpam-systemdbeim Erstellen der Benutzersitzung festgelegt werden. Das User Slice wird korrekt gestartet, da das Verzeichnis existiert, auf das XDG_RUNTIME_DIRpoint ( /run/users/$uid) verweisen soll . Ich zögere, es einfach fest einzuschreiben, sagen wir .bash_profilemal, weil das kitschig erscheint (obwohl es funktioniert), wenn Pam sich darum kümmern sollte.
Ich kann natürlich, fügen Sie XDG_RUNTIME_DIRzu env_keepin 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 suoder eingerichtet ist sudo -i?
XDG_RUNTIME_DIRfürsudoSitzungen festgelegt. Ich denke, dann~/.profileist es nicht so abgedreht, wie ich dachte.