Linux CentOS: Nastavení VNC serveru pro více uživatelů
Na GNU/Linux je jednou z možností připojení uživatele k VNC serveru, aby mohl pracovat ve svém X rozhraní (X Window System, X11 desktop), použití balíčku x11vnc (článek). Pokud je však na daném Linux stroji více uživatelů, kteří chtějí pracovat souběžně na svých profilech, tak x11vnc již nevyhovuje a je potřeba sáhnout po jiném řešení. Jednou z možností je balíček tigervnc-server.
V tomto článku nastavíme VNC přístupy pro tři uživatele user1, user2 a user3. Jako první provedeme instalaci balíčku tigervnc-server na CentOS -
Povolit např. port 5901 ve firewalld
PS: Uvedené je otestováno na Linux Cent0S 7
Pokud časem dojde k vymazání některých uživatelů, kteří mají nastavenou vnc službu, tak může nastat problém se spuštěním vnc služby s chybou: "PID file /home/user10/.vnc/system:10.pid not readable (yet?) after start".
Služby vncserver@:XX.service v systemd bude třeba zrevidovat a ty již nepoužívané smazat:
A nakonec je poskládat pěkně za sebe (prostým
Článek níže platí pro starší verzi TigerVNC, pro novou verzi čtěte nový postup uvedený v poradně:
TigerVNC - vncserver has been replaced by a systemd unit
TigerVNC - vncserver has been replaced by a systemd unit
V tomto článku nastavíme VNC přístupy pro tři uživatele user1, user2 a user3. Jako první provedeme instalaci balíčku tigervnc-server na CentOS -
yum install tigervnc-server
a poté se hned vrhneme na jednotlivá nastavení VNC profilů/služeb pro dané uživatele. Ta jsou pro všechny uživatele stejná, jen se mění názvy uživatelů a hesla + číslo VNC portu viz dále.VNC přístup pro user1
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
vim /etc/systemd/system/vncserver@:1.service
ExecStart=/sbin/runuser -l user1 -c "/usr/bin/vncserver %i"
PIDFile=/home/user1/.vnc/%H%i.pid
su - user1
vncserver
su
systemctl daemon-reload
systemctl enable vncserver@:1.service
#############################
# Na VNC server se připojíme jako user1 k serveru na portu 5901
#############################
VNC přístup pro user2
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
vim /etc/systemd/system/vncserver@:2.service
ExecStart=/sbin/runuser -l user2 -c "/usr/bin/vncserver %i"
PIDFile=/home/user2/.vnc/%H%i.pid
su - user2
vncserver
su
systemctl daemon-reload
systemctl enable vncserver@:2.service
#############################
# Na VNC server se připojíme jako user2 k serveru na portu 5902
#############################
VNC přístup pro user3
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:3.service
vim /etc/systemd/system/vncserver@:3.service
ExecStart=/sbin/runuser -l user3 -c "/usr/bin/vncserver %i"
PIDFile=/home/user3/.vnc/%H%i.pid
su - user3
vncserver
su
systemctl daemon-reload
systemctl enable vncserver@:3.service
#############################
# Na VNC server se připojíme jako user3 k serveru na portu 5903
#############################
Dodatek:
Povolit např. port 5901 ve firewalld
firewall-cmd --zone=public --permanent --add-port=5901/tcp
firewall-cmd --reload
vncpasswd
- změna aktuálního hesla pro VNC serverPS: Uvedené je otestováno na Linux Cent0S 7
Možné problémy po smazání uživatelů
Pokud časem dojde k vymazání některých uživatelů, kteří mají nastavenou vnc službu, tak může nastat problém se spuštěním vnc služby s chybou: "PID file /home/user10/.vnc/system:10.pid not readable (yet?) after start".
[root@system ~]#systemctl status vncserver@:10.service
● vncserver@:10.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:10.service; enabled; vendor preset: disabled)
Active: failed (Result: resources) since Pá 2019-01-11 08:01:37 CET; 25min ago
Process: 4827 ExecStart=/usr/sbin/runuser -l user10 -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
Process: 4691 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
led 11 08:01:33 system systemd[1]: Starting Remote desktop service (VNC)...
led 11 08:01:37 system systemd[1]: PID file /home/user10/.vnc/system:10.pid not readable (yet?) after start.
led 11 08:01:37 system systemd[1]: Failed to start Remote desktop service (VNC).
led 11 08:01:37 system systemd[1]: Unit vncserver@:10.service entered failed state.
led 11 08:01:37 system systemd[1]: vncserver@:10.service failed.
Služby vncserver@:XX.service v systemd bude třeba zrevidovat a ty již nepoužívané smazat:
[root@system]#ls -al /etc/systemd/system/vncserver*
-rw-r--r--. 1 root root 1689 10. dub 2018 /etc/systemd/system/vncserver@:11.service
-rw-r--r--. 1 root root 1689 2. bře 2018 /etc/systemd/system/vncserver@:12.service
-rw-r--r--. 1 root root 1876 8. čen 2017 /etc/systemd/system/vncserver@:1.service
-rw-r--r--. 1 root root 1876 8. čen 2017 /etc/systemd/system/vncserver@:2.service
-rw-r--r--. 1 root root 1882 29. čen 2017 /etc/systemd/system/vncserver@:3.service
-rw-r--r--. 1 root root 1884 18. čec 2017 /etc/systemd/system/vncserver@:4.service
-rw-r--r--. 1 root root 1878 23. říj 2017 /etc/systemd/system/vncserver@:5.service
-rw-r--r--. 1 root root 1880 8. zář 2017 /etc/systemd/system/vncserver@:6.service
-rw-r--r--. 1 root root 1878 8. zář 2017 /etc/systemd/system/vncserver@:7.service
A nakonec je poskládat pěkně za sebe (prostým
mv vncserver@:11.service vncserver@:8.service
atd):
[root@system ~]#ls -al /etc/systemd/system/vncserver*
-rw-r--r--. 1 root root 1876 8. čen 2017 /etc/systemd/system/vncserver@:1.service
-rw-r--r--. 1 root root 1876 8. čen 2017 /etc/systemd/system/vncserver@:2.service
-rw-r--r--. 1 root root 1882 29. čen 2017 /etc/systemd/system/vncserver@:3.service
-rw-r--r--. 1 root root 1884 18. čec 2017 /etc/systemd/system/vncserver@:4.service
-rw-r--r--. 1 root root 1878 23. říj 2017 /etc/systemd/system/vncserver@:5.service
-rw-r--r--. 1 root root 1880 8. zář 2017 /etc/systemd/system/vncserver@:6.service
-rw-r--r--. 1 root root 1878 8. zář 2017 /etc/systemd/system/vncserver@:7.service
-rw-r--r--. 1 root root 1689 10. dub 2018 /etc/systemd/system/vncserver@:8.service
-rw-r--r--. 1 root root 1689 2. bře 2018 /etc/systemd/system/vncserver@:9.service