2
为什么sudo -i不为目标用户设置XDG_RUNTIME_DIR?
XDG_RUNTIME_DIR是systemctl --user工作所必需的。 我已经设置了ubuntu服务器16.04来运行systemd用户会话。现在,当尝试管理它们时,我发现当通过sudo -u $user -i甚至更改用户时su - $user,环境尚未XDG_RUNTIME_DIR设置,无法systemctl --user正常工作。但是,当我ssh直接进入该用户时,它的设置正确。 如果我正确理解了文档,则应libpam-systemd在创建用户会话时进行设置。用户切片已正确启动,因为XDG_RUNTIME_DIR应该/run/users/$uid存在指向point()的目录。我很犹豫只是将其硬编码进去,.bash_profile因为当pam应该照顾它时,这似乎很麻烦(尽管可行)。 我可以,当然,加XDG_RUNTIME_DIR至env_keep在sudoers,但这只是保持sudoing用户的环境,这是不是我想要的。我想要目标用户的环境。 我真正想知道的是,如何使用正确设置会话ssh,但不能使用suor 正确设置会话sudo -i?