[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

run another program as another user (su ?)



Hi!

Я хочу добиться запуска программы от имени другого пользователя.
Самый простой пример - по нажатию на горячую клавишу хочу окно с
запросом пароля root-a, а замет терминал с правами root-a (вариант с
вводом пароля на загруженном теринале не подходит, например, потому, что
я использую mrxvt и если я его запустил уже под root-ом, то я могу в нем
открыть еще однит терминал с правами рута, уже не вводя пароль).
Или еще пример, запустить с правами другого пользователя комунду запуска
второго X-сервера, и тогда на втором мониторе загрузится сразу его
рабочая среда и все настройки.

Я нашел программу, которя делает все это: gksu
------------
graphical frontend to su
gksu is a Gtk+ frontend to /bin/su. It supports login shells
and preserving environment when acting as a su frontend. It
is useful to menu items or other graphical programs that need
to ask a user's password to run another program as another user.
------
Но она грузится дольше firefox-a и затем занимает в памяти больше 10Мб. Грустно.

Можно ли добиться такой функциональности с помощью su?

Например команда:
mrxvt -tnum 1 -vt0.e "su -c mrxvt" 
открывает второй терминал (с одной закладкой -tnum 1) и запускает на нем
команду "su -c mrxvt" (-vt0.e - запустить команду), запрашивается пароль, и открывается третий
терминал с правами root-а. По скорости и расходу памяти уже лучше, чем с
gksu, но (опять но) висит 2-й терминал, который уже не нужен, ест
память, и занимает место в списке запущенных программ.

Подозреваю, что правильная команду должна выглядеть как-то так:

mrxvt -tnum 1 -vt0.e "su -c "mrxvti &! "  "     

- второй терминал должен запросить пароль, запустить команду с &! и
завершить свою работу. Но в таком виде это не работает.
Использую zsh.

Я не могу осилить эту задачу. 

Помогите, пожалуйста.

Андрей.	



Reply to: