XDG_RUNTIME_DIR
è necessario per systemctl --user
funzionare.
Ho installato Ubuntu Server 16.04 per eseguire sessioni utente di systemd. Ora, quando provo ad amministrarli, scopro che quando si cambia un utente via sudo -u $user -i
o anche su - $user
, l'ambiente non si è XDG_RUNTIME_DIR
impostato, impedendo il systemctl --user
funzionamento. Tuttavia, quando mi rivolgo ssh
direttamente a quell'utente, è impostato correttamente.
Se capisco correttamente la documentazione, questo dovrebbe essere impostato libpam-systemd
durante la creazione della sessione utente. La sezione utente viene avviata correttamente, poiché esiste la directory in cui XDG_RUNTIME_DIR
dovrebbe puntare ( /run/users/$uid
). Sono titubante nel codificarlo, diciamo, .bash_profile
perché sembra confuso (anche se funziona), quando il pam dovrebbe occuparsene.
Naturalmente, posso aggiungere XDG_RUNTIME_DIR
ad env_keep
in sudoers
, ma ciò preserverebbe semplicemente l'ambiente dell'utente sudoing, che non è quello che voglio. Voglio l' ambiente dell'utente di destinazione .
Quello che mi chiedo davvero, però, è come mai la sessione è impostata correttamente ssh
, ma non con su
o sudo -i
?
XDG_RUNTIME_DIR
per lesudo
sessioni in base alla progettazione? Immagino che allora impostarlo non~/.profile
sia così confuso come pensavo.