Я использую kdialog для создания небольшой Утилиты. Теперь я сталкиваюсь с этой проблемой. Существует одна или несколько объединенных функций, которые принимают sudo 3 или 4 раза подряд. Так что действительно раздражает необходимость заходить туда так много раз.
Я хотел бы использовать kdialog --password для хранения моего пароля sudo каждый раз, когда я открываю приложение, оно будет храниться в переменной. Таким образом, это не сидит в файле или что-то. В любом случае, я вижу, что он хранит только найти, что я могу повторить $ passwrd. Но я понятия не имею, как заставить его вводить в терминал, когда он просит об этом. Это возможно? Если да, то как, даже если другой подход. Если нет, то что в действительности использует kdialog --password? Если вы не можете этого сделать, вы увидите, что вы действительно мало пользуетесь этим.
Спасибо.
Возможно, вы уже получили ответ, но я все еще публикую его здесь. Вы можете использовать команду Ожидайте , чтобы отправить пароль (сохраненный в переменной 'passwd') на терминал, когда появится нужное приглашение. Хороший учебник можно увидеть здесь здесь .
kdialog
Разработка / Учебники / Скрипты оболочки с диалогами KDE: http://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs
Example 6: Password Dialog Using a Shell Variable
Instead of saving the result in a file, you can also use a shell
variable. Note that you need to use the "backtick" notation - this key
is normally found on the top left of English (British or American)
layout keyboards, above the "7" key on French layout keyboards, and on
the top right of German layout keyboards.
password=`kdialog --password "Enter the password"`
sudo -S
до читать пароль со стандартного ввода вместо использования терминального устройства.
- установите переменную PASSWRD с помощью
kdialog --password
с помощью подстановки команды$ ()
, чтобы вычислить выражение
PASSWRD = $ (kdialog --password "Enter пароль для запуска: ")
- если ПАРОЛЬ не установлен, выйти из программы
"
[[-z "$ PASSWRD"]] && {echo "Нет пароля, выход ..."; выход 1; }
- направьте ПАРОЛЬ в sudo с помощью переключателя
-S
или- stdin
, установленного для каждой команды, приглашение будет записано в stderr
echo "$ ПАРОЛЬ" | sudo -S dnf -y groupinstall "Инструменты разработки C и библиотеки »
echo« $ PASSWRD »| sudo -S dnf --nogpgcheck -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E% fedora) .noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E% fedora) .noarch.rpm
- явно unset PASSWRD variable
unset PASSWRD
этот пример устанавливает драйверы Nvidia и некоторые дополнения в Fedora, используя:
kdialog --password
& kdialog --progressbar