XDG_RUNTIME_DIRé necessário para systemctl --usertrabalhar.
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 -iou mesmo su - $user, o ambiente não foi XDG_RUNTIME_DIRdefinido, impedindo o systemctl --usertrabalho. No entanto, quando eu sshdireto para esse usuário, ele está definido corretamente.
Se eu entendi a documentação corretamente, isso deve ser definido libpam-systemdao criar a sessão do usuário. A fatia do usuário é iniciada corretamente, pois o diretório para o qual XDG_RUNTIME_DIRdeve apontar ( /run/users/$uid) existe. Eu hesito em codificá-lo, digamos, .bash_profileporque isso parece hacky (embora funcione), quando o pam deveria cuidar disso.
Eu posso, é claro, adicionar XDG_RUNTIME_DIRa env_keepno 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 suou sudo -i?
XDG_RUNTIME_DIRparasudosessões por design? Eu acho que então eu colocá-lo~/.profilenão é tão hacky quanto eu pensava.