小编mka*_*ito的帖子

为什么 sudo -i 没有为目标用户设置 XDG_RUNTIME_DIR?

XDG_RUNTIME_DIRsystemctl --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)的目录存在。我很犹豫是否只是硬编码它,比如,.bash_profile因为这看起来很笨拙(尽管有效),当 pam 应该照顾它时。

我当然可以添加XDG_RUNTIME_DIRenv_keepin sudoers,但这只会保留 sudoing 用户的环境,这不是我想要的。我想要目标用户的环境。

不过,我真正想知道的是,会话如何正确设置为ssh,而不是susudo -i

ssh pam sudo systemd

21
推荐指数
2
解决办法
7342
查看次数

管理另一个用户的 systemd 单元

一个用户或 root 用户可以控制另一个用户的用户级 systemd 服务吗?

我试过了sudo -u <some user> systemctl --user restart <some service>,但它抱怨 dbus: Failed to get D-Bus connection: Connection refused

sudo systemd

12
推荐指数
1
解决办法
2973
查看次数

标签 统计

sudo ×2

systemd ×2

pam ×1

ssh ×1