Как для своей программы получить на некоторое время права root?
Как его (пароль) передать su?
Может кто уже делал? Подскажить плз.
получить права root
Модератор: Модераторы
- Attid
- долгожитель
- Сообщения: 2588
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
насколько я помню никак. можно только запустить внешнюю программу с правами.
изучая исходники sudo понял как из под рута запустить процесс с правами обычного пользователя , а вот обратно так и не понял =( так что читать исходник sudo и\или su
изучая исходники sudo понял как из под рута запустить процесс с правами обычного пользователя , а вот обратно так и не понял =( так что читать исходник sudo и\или su
Программа не должна повышать привилегии для своего выполнения (повышение привилегии возможно только при наличии бага в ПО работающего с привилегированными правами).
Но можно спросить пароль root у пользователя (легче всего через шел скрипт, но можно и из программы) и запустить программу с правами рута.
Но можно спросить пароль root у пользователя (легче всего через шел скрипт, но можно и из программы) и запустить программу с правами рута.
Но можно спросить пароль root у пользователя (легче всего через шел скрипт, но можно и из программы) и запустить программу с правами рута.
Именно это мне и нужно!
А можно пример, хоть с шеллом хоть с программой?
-
alex_alex_alex1
- постоялец
- Сообщения: 207
- Зарегистрирован: 15.10.2010 14:08:50
хоть бы кто пример привел...
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Как для своей программы получить на некоторое время права root?
Как его (пароль) передать su?
Может кто уже делал? Подскажить плз.
Грязно : SUID | GUID-bit-ы в правах.
или чисто :
RPC/CORBA/... -доступ к демону-исполнителю Remote-команд, запущенному от рута.
-
alex208210
- постоялец
- Сообщения: 207
- Зарегистрирован: 12.05.2010 13:16:51
Exec=gksu -u root "leafpad"
serg_iv писал(а):Как для своей программы получить на некоторое время права root?
Как его (пароль) передать su?
Может кто уже делал? Подскажить плз.
вопросом временного повышения прав не занимался (кроме как перезапуск программы с новыми правами ничего на ум не приходит)
запускать программу с правами рута сразу - запускал.
Делал через tprocess
нечто вроде (пишу навскидку):
Код: Выделить всё
if filepresent('gksu') = true
then
begin
t := tprocess.create(nil);
t.commandline = 'gksu <имя программы>';
t.execute;
end
else showmessage('Запуск программы с правами root невозможен, не найден gksu');
функция filepresent самописная, проверяет доступность gksu в PATH. Если сами не сможете реализовать - обращайтесь, найду код - выложу.
