Я пытаюсь использовать kdialog с sudo в скрипте bash, экспортируя SUDO_ASKPASS в скрипт со строкой
kdialog --password "enter password: "
и используя sudo -A.Это хорошо работает, за исключением , что если я нажимаю отмену в диалоговом окне, sudo игнорирует это и повторяет ввод пароля после задержки.Сценарий, состоящий из одной строки, завершается со статусом выхода kdialog, который не равен нулю при нажатии кнопки отмены.
Есть ли способ убедить sudo отказаться, как можно с помощью текстового интерфейса, набрав control-C?
Редактировать - в конце концов я понял, что происходит.Если вы нажмете «Отмена», kdialog выведет новую строку.Sudo --askpass интерпретирует это как пустой пароль и начинает обработку неправильного пароля.Сценарий askpass не должен испускать эту новую строку, если отменить нажатие.Способ сделать это -
pe=$(kdialog --password 'enter password: ') && echo "$pe"