通过 SSH 登录并尝试设置用户范围服务后,为什么我缺少 $XDG_RUNTIME_DIR 和 $DBUS_SESSION_BUS_ADDRESS

通过 SSH 登录并尝试设置用户范围服务后,为什么我缺少 $XDG_RUNTIME_DIR 和 $DBUS_SESSION_BUS_ADDRESS

我试图在通过 SSH 登录后设置用户范围服务,但是当我尝试设置诸如..

systemctl --user enable wallpaper.timer

即使我以相关用户身份通过​​ SSH 登录,我也会收到这些错误。

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)

env确认未设置那些特定的环境变量。但由于某种原因,以下内容有效。

sudo systemctl --machine=<user>@.host --user enable wallpaper.timer

这很烦人而且看起来很迂回。我必须 sudo 才能访问我自己的用户环境变量。现在,我不认为以这种方式设置服务比仅使用根服务和设置有什么意义User=<username>

如何登录 SSH 用户帐户并设置 $XDG_RUNTIME_DIR 和 $DBUS_SESSION_BUS_ADDRESS?我已经尝试过sshssh -t得到相同的结果。

答案1

通过 SSH 登录时,未设置 $XDG_RUNTIME_DIR 和 $DBUS_SESSION_BUS_ADDRESS,因为我已在主机的 SSH 服务器配置中关闭了 PAM 系统。

sudo nano /etc/ssh/sshd.config

和设置

UsePAM yes

修复。

显然,控制这些变量的是PAM系统。

相关内容