LINUX.ORG.RU
ФорумAdmin

Удаленный запуск vncserver на linux из под разных пользователей


0

0

Суть такова. Нужно, чтобы разные пользователи могли со своих виндовых машин подключаться к linux - vncserver и работать со своим софтом. Хочется, чтобы для каждого пользователя xserver был запущщен под своим пользователем(который собирается за ним работать.) Это нужно, чтобы соблюсти права доступа к файлам и чтобы домашний каталог смонтировался тот - который должен быть, а не что попало.

Выхода вижу два - или запускать всё при старте системы: su user1 -c "vncserver :1" su user2 -c "vncserver :2" etc.

Или изловчиться и подсовывать окно аутентификации на подобии GDM`овского.

Пока результат нулевой, и сделать так, чтобы запуск занимал минимум телодвижений не получается.

Если будут варианты, или ссылки - пишите.

Спасибо.

Chu_

anonymous

Не лучше ли FreeNX?

anonymous
()

Заход по ssh с запуском Xvnc если еще не запущен и затем коннект vncviewer_a (все прозрачно для пользователя)

sdio ★★★★★
()
Ответ на: комментарий от sdio

Сейчас пробую(ставлю) FreeNX, посмотрим, что получиться..

Проблема в том, что учить юзеров работать с putty и потом запускать Xvnc - достаточно не благодарное занятие. Я пробовал автоматизировать этот процесс средствами plink(то же самое, что и putty, только консольный интерфейс) - начинает ругаться на xauth и еще что-то, отсюда сделал вывод, что нет каких-то переменных среды(или еще чего-то) и он не запускает сервер. Хотя с обычного ssh - всё нормально стартует. Решил не биться головой об стенку и искать другие пути.. )

Chu_

anonymous
()
Ответ на: комментарий от anonymous

У FreeNX всё хорошо - запускается, работает.. Но vnc делает то-же самое быстрее и стабильнее..(Содержимое окон не смазывается, курсоры адекватно своё состояние меняют, 3D графика работает..) А тут, всё как-то не очень.

Chu_

anonymous
()
Ответ на: комментарий от anonymous

>Решил не биться головой об стенку и искать другие пути.. )

Молодец, хоть стенка чистая останется.

sdio ★★★★★
()

На, попробуй -

#! /bin/sh # Multiple VNC Servers # export USER="" export PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/var/run/vncserver:/sbin:/u sr/sbin:/usr/local/sbin" NAME="vncserver"

#VNCPARAMS: set your parameters here: VNCPARAMS[1]="-name alekseivnc -geometry 1024x768 -depth 16 -alwaysshared" # uncomment (remove #) for multiple servers: # VNCPARAMS[2]="-name asjdafjxcd" # VNCPARAMS[3]="-name asddsfdsf" # and so on... #USER: set your names here: USER[1]="root" # USER[2]="" # USER[3]="" #

start() { for ((num=1; ($num <= ${#VNCPARAMS[*]} && $num <= ${#USER[*]}); num=$num+1)); do su ${USER[$num]} -c "vncserver ${VNCPARAMS[$num]} :$num" done } stop() { for ((num=1; ($num <= ${#VNCPARAMS[*]} && $num <= ${#USER[*]}); num=$num+1)); do su ${USER[$num]} -c "vncserver -clean -kill :$num" done } case "$1" in start) echo -n "Starting Xvnc servers: " start ;; stop) echo -n "Stopping Xvnc " stop ;; restart) echo -n "Restarting Xvnc " stop start ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart}" exit 1 ;; esac exit 0

MiracleMan ★★★★★
()

На, попробуй -

#! /bin/sh
# Multiple VNC Servers
# export USER=""
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/var/run/vncserver:/sbin:/u sr/sbin:/usr/local/sbin"
NAME="vncserver"

#VNCPARAMS: set your parameters here:
VNCPARAMS[1]="-name alekseivnc -geometry 1024x768 -depth 16 -alwaysshared"
# uncomment (remove #) for multiple servers:
# VNCPARAMS[2]="-name asjdafjxcd"
# VNCPARAMS[3]="-name asddsfdsf"
# and so on...
#USER: set your names here:
USER[1]="root"
# USER[2]=""
# USER[3]=""
#

start()
{
for ((num=1; ($num <= ${#VNCPARAMS[*]} && $num <= ${#USER[*]}); num=$num+1));
do
su ${USER[$num]} -c "vncserver ${VNCPARAMS[$num]} :$num"
done
}
stop()
{
for ((num=1; ($num <= ${#VNCPARAMS[*]} && $num <= ${#USER[*]}); num=$num+1));
do
su ${USER[$num]} -c "vncserver -clean -kill :$num"
done
}
case "$1" in
start)
echo -n "Starting Xvnc servers: "
start
;;
stop)
echo -n "Stopping Xvnc "
stop
;;
restart)
echo -n "Restarting Xvnc "
stop
start
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart}"
exit 1
;;
esac
exit 0

MiracleMan ★★★★★
()
Ответ на: комментарий от MiracleMan

Это и так есть в системе для запуска всех настроенных vnc-server_ов

Надо:

На винде юзер клацает иконку, запускается .bat файл
1. plink.exe -опция private.key username@linux.server "sudo /usr/local/sbin/start_user_vncserver.sh"
2. vncviewer.exe linux.server:N ,где N либо фикс. для каждого юзера, либо возвращается скриптом запуска start_user_vncserver.sh

Все. скрипт start_user_vncserver.sh пишется за 15 мин + 15 мин на проверку.

sdio ★★★★★
()
Ответ на: комментарий от MiracleMan

Так и ответил сразу, а теперь разжевывать пришлось.

sdio ★★★★★
()

В общем проблему решил так:

plink host_name -ssh -batch -l user -i _host_user.ppk -m rs.txt -v

В rs.txt:

bash -c "source /etc/profile ; wall New vnc session opening ; xauth generate :2 . ; vncserver :2 ; exit"

И еще была проблема с тем, что я писал эту тулзу на php и она не хотела процесс правильно открывать в apache. Вылечилось запуском apache из под другого юзера.(apache стоит на win)

Всем спасибо.

--
Chu_

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.