![su :连接到另一个用户并激活 D-BUS](https://linux22.com/image/228540/su%20%EF%BC%9A%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E5%B9%B6%E6%BF%80%E6%B4%BB%20D-BUS%20.png)
我创建了一个运行计时器和服务的用户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
可以使其持久化。瞧! :)