Fork me on GitHub

Настройка vnc4server

туполинк Что делаем Сначала ставим всё что нам понадобится

sudo apt-get install xubuntu-desktop vnc4server

Затем создаём пользователя без возможности становится рутом т.к. у нас паранойа

adduser ttys
Добавляется пользователь «ttys» ...
Добавляется новая группа «ttys» (1001) ...
Добавляется новый пользователь «ttys» (1001) в группу «ttys» ...
Создаётся домашний каталог «/home/ttys» ...
Копирование файлов из «/etc/skel» ...
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: password updated successfully
Changing the user information for kaka
Enter the new value, or press ENTER for the default
    Full Name []: Vnc User
    Room Number []:
    Work Phone []:
    Home Phone []:
    Other []:
Данная информация корректна? [Y/n]

Дальше становимся этим юзером и пробуем запустить сервер

su - ttys
vncserver
You will require a password to access your desktops.

Password:
Verify:

New 'bit:1 (ttys)' desktop is bit:1

Creating default startup script /home/ttys/.vnc/xstartup
Starting applications specified in /home/ttys/.vnc/xstartup
Log file is /home/ttys/.vnc/bit:1.log

Правим конфиг

nano ~/.vnc/xstartup
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
xfce4-session &
#EOF

Если всё класс то можно настроить и автостарт (всё остальное делаем от рута)

nano /etc/init.d/vncserver
#!/bin/bash

unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
    . /lib/lsb/init-functions
    REQ_USER=$2
    echo -n $"Starting $prog: "
    ulimit -S -c 0 >/dev/null 2>&1
    RETVAL=0
    for display in ${VNCSERVERS}
    do
    export USER="${display##*:}"
    if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
     echo -n "${display} "
     unset BASH_ENV ENV
    DISP="${display%%:*}"
    export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
    su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver -depth 24 :${DISP} ${VNCUSERARGS}"
    fi
    done
}
stop() {
    . /lib/lsb/init-functions
    REQ_USER=$2
    echo -n $"Shutting down VNCServer: "
    for display in ${VNCSERVERS}
    do
    export USER="${display##*:}"
    if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
    echo -n "${display} "
    unset BASH_ENV ENV
    export USER="${display##*:}"
    su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
    fi
    done
    echo -e "\n"
    echo "VNCServer Stopped"
}
case "$1" in
    start)
    start $@
    ;;
    stop)
    stop $@
    ;;
    restart|reload)
    stop $@
    sleep 3
    start $@
    ;;
    condrestart)
    if [ -f /var/lock/subsys/vncserver ]; then
    stop $@
    sleep 3
    start $@
    fi
    ;;
    status)
    status Xvnc
    ;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
chmod +x /etc/init.d/vncserver
mkdir /etc/vncserver
nano /etc/vncserver/vncservers.conf

Содержимое конфига

VNCSERVERS="1:ttys"
VNCSERVERARGS[1]="-geometry 1200x800"
update-rc.d vncserver defaults 99
Adding system startup for /etc/init.d/vncserver ...
   /etc/rc0.d/K99vncserver -> ../init.d/vncserver
   /etc/rc1.d/K99vncserver -> ../init.d/vncserver
   /etc/rc6.d/K99vncserver -> ../init.d/vncserver
   /etc/rc2.d/S99vncserver -> ../init.d/vncserver
   /etc/rc3.d/S99vncserver -> ../init.d/vncserver
   /etc/rc4.d/S99vncserver -> ../init.d/vncserver
   /etc/rc5.d/S99vncserver -> ../init.d/vncserver

Перезагружаем и балдеем от того что всё работает

reboot

Comments