Как передать пароль sudo\root команде Linux с помощью Free Pascal

Большинство других вопросов об этом, похоже, связаны с C. Я использую Free Pascal и Lazarus IDE версии 2.4.0 и 0.9.30 соответственно.

Я создаю графический интерфейс, который вызывает и передает аргументы команде Linux. Я не хочу, чтобы мои пользователи запускали весь графический интерфейс, используя sudo\root, а скорее запрашивали пароль в нужное время.

Я использую TProcess для вызова команд Linux и передачи и чтения значений. Однако я не могу понять, как передать пароль sudo команде из моей собственной программы?

В качестве примера возьмем следующую обычную командную строку:

dd if=/dev/hda1 of=~/image.dd
Enter sudo password:

Моя программа вызывает dd, передавая ей значения if и of из графического интерфейса - затем ей нужно собрать и передать пароль sudo в dd.


person Gizmo_the_Great    schedule 01.09.2011    source источник
comment
Может ли кто-нибудь рассказать или показать мне пример того, как это было сделано с использованием другого языка, и, возможно, из этого я смогу понять, как применить это к Free Pascal. ?? Спасибо Тед   -  person Gizmo_the_Great    schedule 02.09.2011
comment
Как насчет использования TProcess для запуска gksudo вместо прямого запуска команды?   -  person Dmitri    schedule 18.09.2011


Ответы (2)


Немного устарело, но — используйте pkexec перед вашей командой, например: pkexec ls /root

Каждый раз у вас будет информация о графическом интерфейсе для ввода пароля root. Проверено на LinuxMint

person jack_    schedule 27.12.2011

Исходя из того, что вы уже используете TProcess, вместо прямого вызова командной строки dd вы можете использовать один из следующих установленных методов вызова su/sudo:

person Gustavo Carreno    schedule 21.09.2011