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: