Эксперимент у меня заключается в следующем:
нужно запустить графическую программу под голыми X'ами, без запуска всяких сессий, оконных менеджеров и т.п.
Для этого загружаю 3й уровень и в rc.local вызываю startx.
Xы запускаются от имени root'а.
В /root/.xinit.rc прописан запуск графической софтины от имени пользователя user:
su user --command=/home/myprog/start.sh
Она стартует (процесс появляется), но окно не появляется и процесс падает - что-то там про X-протокол говорит.
Вопрос:
а как правильно и на каком этапе в таком вот случае сменить пользователя?
Спасибо.
Запуск GUI-программы от имени пользователя (При запуске Х'ов root'ом)
Модератор: Модераторы разделов
-
BaZilio
- Сообщения: 457
- Статус: Say оПХБЕР again!
Re: Запуск GUI-программы от имени пользователя
А разрешено ли другим пользователям подключаться к этой Х-сессии? Попробуйте почитать man xhost, мне кажется это именно то, что вам нужно.
Windows XP:
Netbook - Acer Aspire One A150.
Debian Squeeze amd64:
Laptop - Acer TravelMate 5520G.
Laptop_work - Toshiba Satellite C660.
Windows 7 x64:
Desktop - Core2Duo 6600 2.4GHz/6 GB/i965/GeForce 9500GT.
4 the lulz!
-
Zeus
- Сообщения: 694
Re: Запуск GUI-программы от имени пользователя
Спасибо. Посмотрю.
Я запускал ось на 5м уровне (с графикой) и ps --forest'ом смотрел как там развивалась загрузка системы.
Так вот X'ы запускаются root'ом.
А gnome-session - уже этим пользователем (после входа в систему, конечно).
Вот я и подумал, что вместо этой gnome-session вполне могла бы запускаться только требуемая софтина и тоже не под root'ом, а под user'ом.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Запуск GUI-программы от имени пользователя
а почему бы не требуемым пользователем?(Zeus @ Sep 2 2006, в 08:14) писал(а):Так вот X'ы запускаются root'ом.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Zeus
- Сообщения: 694
Re: Запуск GUI-программы от имени пользователя
Можно было бы и так.
Прописывал в rc.local запуск X'ов от имени нужного юзера:
su user --command=startx
а у user'а в .xinitrc запуск уже необходимой проги.
Но так X'ы вообще не стартуют.
Говорят что-то про PAM autorization что-ли. "Возможно вы не являетесь собственником консоли".
Что-то вроде этого.
-
Aectann
- Бывший модератор
- Сообщения: 3491
- Статус: ...
- ОС: OS X, GNU_и_не_только/Linux
Re: Запуск GUI-программы от имени пользователя
Zeus писал(а): ↑02.09.2006 14:28Можно было бы и так.
Прописывал в rc.local запуск X'ов от имени нужно юзера:
su user --command=startx
а у user'а в .xinitrc запуск уже необходимой проги.
Но так X'ы вообще не стартуют.
Говорят что-то про PAM autorization что-ли. "Возможно вы не являетесь собственником консоли".
Что-то вроде этого.
А если попробовать su -l user --command=startx ?
My god... it's full of stars!...
-
Zeus
- Сообщения: 694
Re: Запуск GUI-программы от имени пользователя
Aectann писал(а): ↑02.09.2006 15:30Zeus писал(а): ↑02.09.2006 14:28
Можно было бы и так.
Прописывал в rc.local запуск X'ов от имени нужно юзера:
su user --command=startx
а у user'а в .xinitrc запуск уже необходимой проги.
Но так X'ы вообще не стартуют.
Говорят что-то про PAM autorization что-ли. "Возможно вы не являетесь собственником консоли".
Что-то вроде этого.
А если попробовать su -l user --command=startx ?
Попробую. Попозже доложусь
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Запуск GUI-программы от имени пользователя
AFAIK Иксы не под рутом запустить вообще невозможно: не хватит прав на запись в видеоустройство. Поэтому и пишут враперы типа xinit, которые запускают Иксы от рута, а клиентов - от пользователя.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
Aectann
- Бывший модератор
- Сообщения: 3491
- Статус: ...
- ОС: OS X, GNU_и_не_только/Linux
Re: Запуск GUI-программы от имени пользователя
Гм.. То есть если я делаю startx из под пользователя, то X-сервер стартует с правами root, а потом уже пользователь там авторизуется, так что ли?
My god... it's full of stars!...
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Запуск GUI-программы от имени пользователя
(Portnov @ Sep 2 2006, в 15:28) писал(а):Иксы не под рутом запустить вообще невозможно: не хватит прав на запись в видеоустройство
$ ps -u al
PID TTY TIME CMD
3674 tty2 00:00:00 bash
5174 tty2 00:00:00 startx
5187 tty2 00:00:00 xinit
5209 tty2 00:00:00 icewm-session-e
5250 ? 00:00:00 icewmbg-experim
5251 ? 00:00:00 icewm-experimen
5252 ? 00:00:00 icewmtray-exper
5253 tty2 00:00:00 sim
5255 ? 00:00:00 kdeinit
5258 ? 00:00:00 kdeinit
5260 ? 00:00:00 kdeinit
5262 ? 00:00:00 kdeinit
5267 ? 00:00:39 firefox-bin
5288 ? 00:00:00 xterm
5296 pts/1 00:00:00 bash
5301 pts/1 00:00:00 ps
$ groups
al tty dialout cdrom floppy audio dip src video plugdev staff users
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Запуск GUI-программы от имени пользователя
sash-kan
ваш пост собственно подтверждает мой. От пользователя запущены startx и xinit. А сам X-сервер у вас даже не выписан здесь. Дело обстоит например так (у меня):
Т.е. xinit стартует от имени юзера и запускает сервер от рута.
Aectann
В общих чертах так.
ваш пост собственно подтверждает мой. От пользователя запущены startx и xinit. А сам X-сервер у вас даже не выписан здесь. Дело обстоит например так (у меня):
Код: Выделить всё
root 3791 2.9 1.6 15432 12496 ? R 12:44 0:39 X :2
portnov 3790 0.0 0.0 2392 616 tty4 S+ 12:44 0:00 xinit /home/portnov/.xinitrc -- :2Т.е. xinit стартует от имени юзера и запускает сервер от рута.
Aectann
В общих чертах так.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
Zeus
- Сообщения: 694
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Запуск GUI-программы от имени пользователя
см. man xauth, man xhost. И соответствующие хауту на opennet.ru.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
router
- Сообщения: 363
- ОС: Debian, на работе rhel
Re: Запуск GUI-программы от имени пользователя
При запуске графического приложения от имени другого пользователя нужно
1) Установить переменную DISPLAY
2) Установить переменную XAUTHORITY, например, XAUTHORITY=~router/.Xauthority
ну или xhost, но это хак безопасности...
1) Установить переменную DISPLAY
2) Установить переменную XAUTHORITY, например, XAUTHORITY=~router/.Xauthority
ну или xhost, но это хак безопасности...