получить права root

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

получить права root

Сообщение serg_iv »

Как для своей программы получить на некоторое время права root?
Как его (пароль) передать su?
Может кто уже делал? Подскажить плз.
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

насколько я помню никак. можно только запустить внешнюю программу с правами.

изучая исходники sudo понял как из под рута запустить процесс с правами обычного пользователя , а вот обратно так и не понял =( так что читать исходник sudo и\или su
karpen
новенький
Сообщения: 13
Зарегистрирован: 27.04.2009 23:13:58
Откуда: Novocheboksarsk

Сообщение karpen »

Программа не должна повышать привилегии для своего выполнения (повышение привилегии возможно только при наличии бага в ПО работающего с привилегированными правами).
Но можно спросить пароль root у пользователя (легче всего через шел скрипт, но можно и из программы) и запустить программу с правами рута.
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение serg_iv »

Но можно спросить пароль root у пользователя (легче всего через шел скрипт, но можно и из программы) и запустить программу с правами рута.

Именно это мне и нужно!
А можно пример, хоть с шеллом хоть с программой?
alex_alex_alex1
постоялец
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

Сообщение alex_alex_alex1 »

хоть бы кто пример привел...
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

Как для своей программы получить на некоторое время права root?
Как его (пароль) передать su?
Может кто уже делал? Подскажить плз.


Грязно : SUID | GUID-bit-ы в правах.

или чисто :

RPC/CORBA/... -доступ к демону-исполнителю Remote-команд, запущенному от рута.
alex208210
постоялец
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Сообщение alex208210 »

Exec=gksu -u root "leafpad"
Аватара пользователя
minoshi
постоялец
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Сообщение minoshi »

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. Если сами не сможете реализовать - обращайтесь, найду код - выложу.
Ответить