Я знаю то использование sudo
и ssh
инструменты возможно использовать GUI для просьбы пароль в сценарии путем установки, соответственно, SUDO_ASKPASS
и SSH_ASKPASS
переменные, в которых мы указываем графический инструмент для выяснения у пароля.
Но что, если я использую какой-либо другой инструмент, который может попросить пароль, например ksu
который, кажется, не поддерживает ни одного из вышеупомянутых режимов? (Я искал в Интернете, и я не нашел ничего как KSU_ASKPASS
и ksu
кажется, не имеет опции поддерживать это).
Я думаю, что нашел решение в конце...
Предположим, например, что Вы хотите перечислить содержание /root/
папка и чтобы сделать это, Вам нужен корневой доступ и можно только использовать ksu
инструмент (нет sudo
/ su
/ ssh
).
Во-первых, Вы спрашиваете пароль с помощью графического инструмента как zenity
и Вы храните его в локальной переменной.
pw=$(zenity --entry --title="Password needed" --text="Enter password:" --hide-text)
После этого можно работать ls /root/
через ksu
при помощи следующей команды.
echo $pw | ksu -e /bin/ls -a /root/
Объяснение:
При помощи echo
объединенный с |
Вы передаете пароль по каналу к ksu
, так как это просит пароль через стандартный вход.
После чтения пароля от стандартного входа, ksu
выполняется ls
управляйте указанным использованием -e
опция, передавая /root/
как аргумент через -a
опция.