Как передать пароль sudo \ root команде Linux с помощью Free Pascal - PullRequest
3 голосов
/ 01 сентября 2011

Большинство других вопросов по этому поводу, похоже, связаны с Си. Я использую 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.

Ответы [ 2 ]

3 голосов
/ 28 декабря 2011

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

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

2 голосов
/ 21 сентября 2011

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

...