相当于不同显示管理器中的`dm-tool switch-to-user `otheruser

相当于不同显示管理器中的`dm-tool switch-to-user `otheruser

使用 lightdm 时,我可以通过执行切换到另一个用户dm-tool switch-to-user。有没有一种不依赖显示管理器的方法?如果没有,其他显示管理器的等效命令是什么:

  • 通用数据管理
  • SDDM
  • 苗条的
  • 勒克斯DM
  • 西德米

答案1

有没有一种不依赖显示管理器的方法?

您需要命令行/运行程序解决方案。

鉴于我在 xdm、gxm、lightdm 方面的经验以及所有这些的工作原理,我认为没有完美的一刀切的答案。原因是:提供实际的用户隔离需要显示管理器密切管理 vt 开关。

也就是说,在简单和/或老式的显示管理器上,我过去曾考虑过一个应该可行的解决方案。

基本上,可以将环境变量chvt的内容与参数一起使用XDG_VTNR目标用户会话过程。效果类似于按Ctrl-Alt-Fn组合键,将n您提供的数字输入到chvt。这在评论中被考虑xorg - 在两个打开的 X 会话之间切换而无需重新验证 - Ubuntu问答

不过,您仍然需要自己获得该号码。要么让 root 运行一个进程来监听目标用户进程的环境,要么让用户在登录时通过已知位置通告此号码(例如~/.myvtnr,假设一个用户一次不超过一个 X 会话,即并不总是如此,用户可能有多个 X 会话,包括使用Xnest) 的嵌套会话。

如果没有,其他显示管理器的等效命令是什么:

在运行 gdm 的 Ubuntu 12.04 上,这对我有用dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.DisplayManager $XDG_SEAT_PATH org.freedesktop.DisplayManager.Seat.SwitchToUser string:otheruserlogin string:anywordseemsignored:替换otheruserlogin为真实用户登录。

而如果XDG_SEAT_PATH没有设置(例如echo $XDG_SEAT_PATH不提供任何输出),那么你可以先使用:export XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0然后重试。

它适用于带有 gdm 的 Ubuntu 18.04 吗?与其他显示管理器?请报告详情。它可能会在未来帮助其他人(包括你和我:-)。

相关内容