su :连接到另一个用户并激活 D-BUS

su :连接到另一个用户并激活 D-BUS

我创建了一个运行计时器和服务的用户systemctl --user。当我尝试通过 登录时ssh,我没有遇到任何问题systemctl --user。但是当我使用 连接到该用户时su,出现总线错误:

me@some_host / $ sudo su -l some_user -                       
some_user@some_host / $ systemctl --user status a_random.service
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)

然后我尝试了这个:

me@some_host / $ systemctl [email protected] --user status a_random.service               
Cannot access user instance remotely.

我在 Debian 上运行这个。我认为这与pam.d但不确定有关。关于如何解决这个问题有什么想法吗?

答案1

我通过将自定义XDG_RUNTIME_DIR变量添加到我的.bashrc

为此,我首先确定了我的 UID:

$ echo $UID
1002

然后我创建我的变量:

$ export XDG_RUNTIME_DIR="/run/user/1002"

将最后一个命令添加到 my 中.bashrc可以使其持久化。瞧! :)

相关内容