sudo - 除非以 sudo 启动,否则tigervncserver 会崩溃

标签 sudo vnc vnc-server

我已经安装了以下 pkgs:

ii  tigervnc-common                          1.10.1+dfsg-1                        amd64        Virtual network computing; Common software needed >
ii  tigervnc-standalone-server               1.10.1+dfsg-1                        amd64        Standalone virtual network computing server
ii  tigervnc-viewer                          1.10.1+dfsg-1                        amd64        Virtual network computing client for X
ii  tigervnc-xorg-extension                  1.10.1+dfsg-1                        amd64        Virtual network computing X server extension

我已经运行了 vncserver 并配置了 passwd 并且没有添加任何其他配置。

(这是一个已经工作的 VNC session )没有 sudo 的命令:
root@kali:~# vncserver -localhost

New 'kali.'"'':2 (root)' desktop at :2 on machine kali.'"''

Starting applications specified in /etc/X11/Xvnc-session
Log file is /root/.vnc/kali.'"'':2.log

Use xtigervncviewer -SecurityTypes VncAuth -passwd /root/.vnc/passwd :2 to connect to the VNC server.


vncserver: Failed command '/etc/X11/Xvnc-session': 256!

=================== tail -15 /root/.vnc/kali.'"'':2.log ===================

Xvnc TigerVNC 1.10.0 - built Dec 30 2019 14:38:21
Copyright (C) 1999-2019 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12006000, The X.Org Foundation


Sun Jan 12 18:52:25 2020
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on local interface(s), port 5902
 vncext:      created VNC server for screen 0
X connection to :2 broken (explicit kill or server shutdown).
 ComparingUpdateTracker: 0 pixels in / 0 pixels out
 ComparingUpdateTracker: (1:-nan ratio)
Killing Xtigervnc process ID 4108... which seems to be deadlocked. Using SIGKILL!

===========================================================================

Starting applications specified in /etc/X11/Xvnc-session has failed.
Maybe try something simple first, e.g.,
        tigervncserver -xstartup /usr/bin/xterm

使用 sudo 运行时,此方法有效:
root@kali:~# sudo vncserver -localhost

New 'kali.'"'':2 (root)' desktop at :2 on machine kali.'"''

Starting applications specified in /etc/X11/Xvnc-session
Log file is /root/.vnc/kali.'"'':2.log

Use xtigervncviewer -SecurityTypes VncAuth -passwd /root/.vnc/passwd :2 to connect to the VNC server.

我是两者的根 - 所以我想了解为什么 sudo 会有所作为

最佳答案

使用以下内容创建可执行文件 ~/.vnc/xstartup:

#!/bin/bash

PATH=/usr/bin:/usr/sbin
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 &
对于 exec 值,请检查您的桌面 session :
ls /usr/share/xsessions/
在那里你会找到 .desktop 文件,例如:
cinnamon2d.desktop  cinnamon.desktop  gnome.desktop  gnome-xorg.desktop  
kodi.desktop
使用您对 vnc session 感兴趣的桌面环境打开文件,并在那里检查 Exec 变量,对我来说它是 cinnamon-session-cinnamon。所以我的 ~/.vnc/xstartup 看起来像这样:
#!/bin/bash

PATH=/usr/bin:/usr/sbin
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec cinnamon-session-cinnamon &
在此 vncserver 应该在没有任何 sudo 要求的情况下启动之后,至少在我的情况下是这样。我猜缺少可执行文件会阻止 vncserver 启动,但是使用 sudo 权限,它设法从仅 sudoers 可访问的某些文件中提取的默认设置开始。

关于sudo - 除非以 sudo 启动,否则tigervncserver 会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59709214/

相关文章:

python - 如何查看使用 `sudo pip install` 安装了哪些软件包?

linux - 修改 sudoers 文件的更好方法

ruby - 使用 ruby​​ gem net-ssh-multi 同时在多个服务器上执行 sudo 命令

linux - CentOS 5.5 + Gnome 上的 VNC

x11 - 如何使用 Ubuntu VPS GNOME 环境为 TightVNC 正确配置 xstartup 文件

python - sudo 不提供 Anaconda python

javascript - Guacamole VNC 文件传输

java - Guacamole vnc 查看器 - 如何使用?

vnc - 使用tightvnc时不能更改主机分辨率

javascript - 无法在 Guacamole iframe 中获取键盘事件