使用 shell 启动新的 systemd 会话

使用 shell 启动新的 systemd 会话

当使用 gnome-session 登录用户时,会创建一个用户分片,启动用户 dbus 会话,并且所有用户进程都在该分片内运行。

如果我以 root 身份登录到使用 shell 的系统,我该如何“登录”到另一个用户,并在用户会话中运行 shell,如上所述?也就是说,如何使用 shell 而不是图形会话登录?

注意:如果我使用“login myuser”,它可以工作,创建切片。但是 systemctl --user 返回一个错误,指示用户 dbus 未运行。

答案1

我之后问了这个问题:

  • docker exec 带有用户 ID
  • sudo bash
  • su-我的用户

这不起作用,因为原始 tty 已经附加到该用户,无需经过 PAM。

systemd 用户实例由 systemd pam 扩展启动。因此,如果我改为:

  • 使用 root 权限执行 docker exec
  • su-我的用户

systemd 用户单元和 systemd --user 以及 dbus 实例都已正确启动,因为 systemd / pam 现在识别到我正在切换用户帐户并创建一个新会话。

相关内容