kdialog - пароль используется с sudo?

Я использую kdialog для создания небольшой Утилиты. Теперь я сталкиваюсь с этой проблемой. Существует одна или несколько объединенных функций, которые принимают sudo 3 или 4 раза подряд. Так что действительно раздражает необходимость заходить туда так много раз.

Я хотел бы использовать kdialog --password для хранения моего пароля sudo каждый раз, когда я открываю приложение, оно будет храниться в переменной. Таким образом, это не сидит в файле или что-то. В любом случае, я вижу, что он хранит только найти, что я могу повторить $ passwrd. Но я понятия не имею, как заставить его вводить в терминал, когда он просит об этом. Это возможно? Если да, то как, даже если другой подход. Если нет, то что в действительности использует kdialog --password? Если вы не можете этого сделать, вы увидите, что вы действительно мало пользуетесь этим.

Спасибо.

1
задан 13 May 2013 в 19:03

3 ответа

Возможно, вы уже получили ответ, но я все еще публикую его здесь. Вы можете использовать команду Ожидайте , чтобы отправить пароль (сохраненный в переменной 'passwd') на терминал, когда появится нужное приглашение. Хороший учебник можно увидеть здесь здесь .

0
ответ дан 13 May 2013 в 19:03

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"`
0
ответ дан 13 May 2013 в 19:03

Используйте: sudo -S до читать пароль со стандартного ввода вместо использования терминального устройства.

  1. установите переменную PASSWRD с помощью kdialog --password с помощью подстановки команды $ () , чтобы вычислить выражение

PASSWRD = $ (kdialog --password "Enter пароль для запуска: ")

  1. если ПАРОЛЬ не установлен, выйти из программы
  2. "

[[-z "$ PASSWRD"]] && {echo "Нет пароля, выход ..."; выход 1; }

  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

  1. явно unset PASSWRD variable

unset PASSWRD

этот пример устанавливает драйверы Nvidia и некоторые дополнения в Fedora, используя:

kdialog --password & kdialog --progressbar

0
ответ дан 13 April 2020 в 02:17

Другие вопросы по тегам:

Похожие вопросы: