Russian Qt Forum

Компиляторы и платформы => Linux => Тема начата: Примерный ученик от Февраль 10, 2011, 13:40



Название: Запуск от имени рута
Отправлено: Примерный ученик от Февраль 10, 2011, 13:40
Приложение запущено ограниченным пользователем.
Нужно из этого приложения запустить другое приложение через
QProcess
от имени рута ???


Название: Re: Запуск от имени рута
Отправлено: Пантер от Февраль 10, 2011, 13:43
Например, через kdesu в KDE. Кстати, можешь посмотреть в их исходниках как все реализовано.


Название: Re: Запуск от имени рута
Отправлено: Примерный ученик от Февраль 10, 2011, 13:45
Не указал, извиняюсь...
У меня МСВС3.0.
Нет исходников


Название: Re: Запуск от имени рута
Отправлено: Пантер от Февраль 10, 2011, 13:46
Нет исходников kdesu??? А скачать? ;)


Название: Re: Запуск от имени рута
Отправлено: GreatSnake от Февраль 10, 2011, 16:27
Запустить приложение с правами другого юзера можно только через su.
А вот чтобы su "тихо" передать пароль, нужно этот su запускать в псевдо-терминале.
Что kdesu успешно и делает.
В 1998г. в "C/C++ Users Journal" была хорошая статейка (http://www.drdobbs.com/184403468;jsessionid=P540OC1HYOKEXQE1GHOSKH4ATMY32JVN?pgno=1) с примерами (http://ftp://ftp.drdobbs.com/sourcecode/cuj/1998/cujmar98.zip).


Название: Re: Запуск от имени рута
Отправлено: Примерный ученик от Февраль 10, 2011, 16:40
GreatSnake
Огромное спасибо
 8)


Название: Re: Запуск от имени рута
Отправлено: andrew.k от Февраль 12, 2011, 14:04
я делаю через sudo <command>
а юзер прописывается в sudoers с параметром nopasswd.
И больше ничего не нужно. Запускай как хочешь хоть через system, хоть через QProcess.


Название: Re: Запуск от имени рута
Отправлено: Пантер от Февраль 14, 2011, 10:44
Дыра в безопасности.


Название: Re: Запуск от имени рута
Отправлено: andrew.k от Февраль 15, 2011, 17:14
Дыра в безопасности.
Почему?
Прописан только перечень определенных разрешенных команд.
А юзер в изолированной среде сидит.


Название: Re: Запуск от имени рута
Отправлено: Пантер от Февраль 15, 2011, 17:19
А, ну если так, то нормально. Я подумал, что на все разрешение ставишь.


Название: Re: Запуск от имени рута
Отправлено: GreatSnake от Февраль 15, 2011, 18:20
На самом деле, можно всё упростить используя xdg-su (http://cgit.freedesktop.org/xdg/xdg-utils/plain/scripts/xdg-su) скрипт.
Например, в пакете с дровами от AMD используется именно он.


Название: Re: Запуск от имени рута
Отправлено: andrew.k от Февраль 16, 2011, 00:02
На самом деле, можно всё упростить используя xdg-su (http://cgit.freedesktop.org/xdg/xdg-utils/plain/scripts/xdg-su) скрипт.
Например, в пакете с дровами от AMD используется именно он.
Куда уж проще чем sudo? :)


Название: Re: Запуск от имени рута
Отправлено: brankovic от Февраль 16, 2011, 00:20
Куда уж проще чем sudo? :)

suid bit?


Название: Re: Запуск от имени рута
Отправлено: GreatSnake от Февраль 16, 2011, 10:25
Цитировать
Куда уж проще чем sudo?
Любой уважающий себя разработчик GUI приложения должен всё сделать, чтобы юзеру никогда не пришлось прибегать к помощи командной строки. Такое приложение должно сразу работать out-of-box. Т.е. в большинстве случаев прописки в sudoers да и вообще любые sudo-настройки неприемлемы за исключением установки самого приложения.


Название: Re: Запуск от имени рута
Отправлено: andrew.k от Февраль 16, 2011, 14:56
Цитировать
Куда уж проще чем sudo?
Любой уважающий себя разработчик GUI приложения должен всё сделать, чтобы юзеру никогда не пришлось прибегать к помощи командной строки. Такое приложение должно сразу работать out-of-box. Т.е. в большинстве случаев прописки в sudoers да и вообще любые sudo-настройки неприемлемы за исключением установки самого приложения.
Это не совсем простое приложение. Как ты заметил, там упоминалась изолированная среда.


Название: Re: Запуск от имени рута
Отправлено: GreatSnake от Февраль 16, 2011, 15:00
Цитировать
Это не совсем простое приложение. Как ты заметил, там упоминалась изолированная среда.
"изолированная среда" упоминалась тобой, а не топик-стартером.