Как разрешить обычному пользователю пускать программы на чужом (локальном) X-сервере?

Настройка графического интерфейса, Иксов, десктопов, оконных менеджеров и иксовых терминалов

Модератор: Модераторы разделов

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Как разрешить обычному пользователю пускать программы на чужом (локальном) X-сервере?

Сообщение t.t »

Понадобилось создать на одной машине двух пользователей и пускать ими программы на одном икс-сервере. При установке иксов выбрал вариант, что к X-серверу имеют право подключаться все локальные пользователи, тем не менее при попытке запуска получаю:

Код: Выделить всё

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Не подскажет ли многоуважаемый all, куда копать?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как разрешить обычному пользователю пускать программы на чужом (локальном) X-сервере?

Сообщение sash-kan »

(t.t @ Jul 8 2006, в 12:53) писал(а):куда копать?

думаю, в сторону xauth.
вот это, возможно, подскажет нужное направление: http://linux.yaroslavl.ru/docs/howto/mini/...-Apps/x150.html
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: Как разрешить обычному пользователю пускать программы на чужом (локальном) X-сервере?

Сообщение Skull »

t.t писал(а):
08.07.2006 13:53
Понадобилось создать на одной машине двух пользователей и пускать ими программы на одном икс-сервере. При установке иксов выбрал вариант, что к X-серверу имеют право подключаться все локальные пользователи, тем не менее при попытке запуска получаю:
xhost +localhost на X-сервере.
Вместо localhost - любая машина
Skull
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как разрешить обычному пользователю пускать программы на чужом (локальном) X-сервере?

Сообщение t.t »

(Skull @ Jul 10 2006, в 12:46) писал(а):xhost +localhost на X-сервере.
Пробовал -- ничего не даёт.

(sash-kan @ Jul 10 2006, в 09:19) писал(а):думаю, в сторону xauth.
вот это, возможно, подскажет нужное направление: http://linux.yaroslavl.ru/docs/howto/mini/...-Apps/x150.html
Если я правильно понял вот это, то тут есть проблема:
Есть небольшая проблема во время использования localhost:D. X-клиент во время поиска записи может перевести localhost:D как host/unix:D. На самом деле это означает, что авторизационная запись для localhost:D в ˜/.Xauthority не имеет эффекта.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как разрешить обычному пользователю пускать программы на чужом (локальном) X-сервере?

Сообщение sash-kan »

(t.t @ Jul 10 2006, в 14:55) писал(а):Пробовал -- ничего не даёт.

аналогично. эффект наступает только после что просто до безобразия несекьюрно.
а вот такой финт прокатывает:

Код: Выделить всё

user1 - владелец x-сессии, user2 - бездисплейный
user1$ cp ~/.Xauthority /tmp/x; chmod +r /tmp/x
user2$ xauth merge /tmp/x; DISPLAY=:0.0 xterm

но это так, внаглую, и, естественно, тоже небезопасно. надо бы как-нибудь покрасивее это дело завернуть. через scp например скидывать этот файл. или что-нибудь еще в этом духе.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как разрешить обычному пользователю пускать программы на чужом (локальном) X-сервере?

Сообщение sash-kan »

ага, более правильно не копировать весь файл, а экстрактить только относящееся к текущему дисплею:

Код: Выделить всё

user1$ xauth nextract /tmp/xa $DISPLAY; chmod +r /tmp/xa
user2$ xauth nmerge /tmp/xa; DISPLAY=:0 xterm
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как разрешить обычному пользователю пускать программы на чужом (локальном) X-сервере?

Сообщение t.t »

(sash-kan @ Jul 10 2006, в 16:36) писал(а):ага, более правильно не копировать весь файл, а экстрактить только относящееся к текущему дисплею:
Работает. Спасибо. А то сам я что-то уже опять запутался..
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: