LINUX.ORG.RU

Запуск через sudo графических приложений.

 , , ,


0

1

Ситуация вот такая:
Правило sudo для google:
user host.local=(google:host.local) NOPASSWD:/bin/bash
Другие настройки:

$ xhost
access control enabled, only authorized clients can connect
INET:host.local
INET:localhost
INET6:localhost
SI:localuser:user
$ cat /etc/hosts   
127.0.0.1	localhost
127.0.0.2	host.local host

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
$ sudo -u google /bin/bash                                
google@host:/home/user$ echo $DISPLAY $XAUTHORITY
:0 /home/user/.Xauthority
google@host:/home/user$ ls -n $XAUTHORITY
-rw------- 1 1000 1000 159 Jul  3 02:53 /home/user/.Xauthority
google@host:/home/user$ id -u
1003
google@host:/home/user$ id -g
1003
google@host:/home/user$ pluma
No protocol specified
Cannot open display: 
Run 'pluma --help' to see a full list of available command line options.
google@host:/home/user$ 

При этом под рутом pluma запускается удачно, при запуске от google видимо хочет доступа к .Xauthority, которого у него нет.
(Под рутом заработало после указания соответствующих переменных.
Почему так?
Запрет то на локальные подключения к икссерверу то у меня отключен.

★★★★★

Последнее исправление: torvn77 (всего исправлений: 2)

Вообще тема более для Admin подходит, так что если хотите то можете перенести туда.
Я пока пошёл спать.

torvn77 ★★★★★
() автор топика
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от torvn77

ты в трёх соснах запутался: {root,user,google}
где у тебя иксы? кем логинишься? где вызов иксов?
проще посоветовать запускать через ssh -X

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

Логинюсь в иксах под user, потом через sudo запускаю под google баш и уже в нём запускаю pluma(текстовый редактор, просто для теста).

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

/home/google/.Xauthority

Это ничего не даст, так как в иксах я залогинен как user, а сам файл .Xauthority проще не копировать в стопятсот мест, а везде указать к нему путь в соответствующей переменной.

И в любом случае, разрешение на подключение локальных пользоваьелей через xhost я дал, так что файл .Xauthority по идее вообще не нужен.

torvn77 ★★★★★
() автор топика
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от anonymous

ты в трёх соснах запутался?

В принципе да, по идее и для работы sudo должно было хватать одного localhost, но почему-то надо делать ещё одну не совпадающую с localhost запись.

Мне кажется что контроль доступа xhost не может признать процесс от google имеющим право на подключение к икссерверу, почему не ясно.

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

тыц

Спасибо, мне надо было xhost +local: набирать.

Я её в /etc/X11/Xsession.d/35x11-common_xhost-local прописал:

if type xhost >/dev/null 2>&1; then
  xhost +local:
  xhost +si:localuser:$(id -un) || :
fi
torvn77 ★★★★★
() автор топика
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от alfix

Ну ставить на этот файл 666 плохой выход.
Правильно разрешать подключение через xhost, но я забыл как это правильно делать, но анонимус мне выше напомнил, спасибо ему.

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