我有一台带有显示器和网络连接的计算机,但没有键盘。
当我打开计算机时,屏幕显示虚拟终端编号 1(VT1)。
有没有办法通过 SSH 在 VT1 上运行 startx?
我正在运行 Slackware GNU/Linux 14.2,默认情况下它不会启动 X 服务器。一时兴起,我尝试startx
在screen
会话中运行并收到警告
/usr/libexec/Xorg.wrap: Only console users are allowed to run the X server
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Couldn't get a file descriptor referring to the console
Run Code Online (Sandbox Code Playgroud)
为什么我无法startx
从屏幕会话内部运行?哪些资源可以在“原始”控制台上访问,而在屏幕下运行的 shell 上却无法访问?
我想从已经运行的 X 会话中启动第二个 X 服务器。
在 debian 8 之前,我可以编辑/etc/X11/Xwrapper.config
并将行更改allowed_users=console
为allowed_users=anybody
. 这允许我作为非特权用户从 X 中运行 X。X 是 Xorg 的 setuid 包装器。
在 debian 9 中发生了变化,X 不再是 setuid 包装器,而是由 systemd 控制 X 所需的权限。该文件/etc/X11/Xwrapper.config
不再存在。
可以使用 package 恢复旧行为xserver-xorg-legacy
。然后/etc/X11/Xwrapper.config
必须包含行
allowed_users=anybody
needs_root_rights=yes
Run Code Online (Sandbox Code Playgroud)
另一种可能性是切换到 tty1...tty6 之一并运行 X,xinit xterm -- :1 vt1
而 vt1...vt6 必须遵守 tty1...tty6。(tty8...tty12 / vt8...vt12 不再可用。)
我想避免使用旧设置并避免切换到控制台。我想找回xinit xterm -- :1 vt8
.
如何设置 systemd 以允许非特权用户从已经运行的 X 中启动第二个 X 服务器?