Ubuntu VNC 用户权限设置指南
一 核心原则与总体思路
二 系统层用户与权限
sudo adduser vncusersudo usermod -aG sudo vncusersu - vncuser 后执行 vncpasswd,设置连接密码(可按需设置仅观看密码)。三 VNC 服务与访问控制
sudo apt install tigervnc-standalone-server tigervnc-commonvncserver :1 -localhost no
:1 为显示号(端口 5901);-localhost no 允许来自外部的访问;如需限制为本地,请使用 -localhost yes 并配合 SSH 隧道。ssh -L 5901:127.0.0.1:5901 vncuser@your_server,然后 VNC Viewer 连接 localhost:5901。sudo ufw allow 5901/tcp(按需开放更多端口,如 5902–5910)。四 多用户与会话隔离
vncserver :N(N 不同),即可在同一台主机上并行提供多个桌面会话。vncserver -listvncserver -kill :N/etc/systemd/system/vncserver@.service:[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=%i
Group=%i
WorkingDirectory=/home/%i
PIDFile=/home/%i/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl enable --now vncserver@vncuser.service/etc/init.d/vncserver 脚本,以 su <user> -c 'vncserver :1 …' 方式按用户启停,并为不同用户配置多个脚本。五 桌面环境、xstartup 与常见问题
~/.vnc/xstartup,示例(使用 XFCE):#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
exec startxfce4 &
chmod +x ~/.vnc/xstartup,vncserver -kill :N && vncserver :Nxstartup 是否启动到 XFCE/GNOME,必要时重装桌面并重试。-localhost no、云安全组/本机防火墙已放行对应 590N/tcp,或改用 SSH 隧道。loginctl unlock-session <ID> 解锁会话,再重连 VNC。