XDG_RUNTIME_DIR
é necessário para systemctl --user
trabalhar.
Eu configurei o servidor ubuntu 16.04 para executar as sessões do usuário systemd. Agora, ao tentar administrá-los, acho que, ao alterar um usuário via sudo -u $user -i
ou mesmo su - $user
, o ambiente não foi XDG_RUNTIME_DIR
definido, impedindo o systemctl --user
trabalho. No entanto, quando eu ssh
direto para esse usuário, ele está definido corretamente.
Se eu entendi a documentação corretamente, isso deve ser definido libpam-systemd
ao criar a sessão do usuário. A fatia do usuário é iniciada corretamente, pois o diretório para o qual XDG_RUNTIME_DIR
deve apontar ( /run/users/$uid
) existe. Eu hesito em codificá-lo, digamos, .bash_profile
porque isso parece hacky (embora funcione), quando o pam deveria cuidar disso.
Eu posso, é claro, adicionar XDG_RUNTIME_DIR
a env_keep
no sudoers
, mas que seria apenas preservar o ambiente do usuário sudoing, que não é o que eu quero. Eu quero o ambiente do usuário de destino .
O que realmente estou me perguntando é como é que a sessão é configurada corretamente com ssh
, mas não com su
ou sudo -i
?
XDG_RUNTIME_DIR
parasudo
sessões por design? Eu acho que então eu colocá-lo~/.profile
não é tão hacky quanto eu pensava.https://github.com/systemd/systemd/issues/7451#issuecomment-346787237
fonte