我正在尝试在bash脚本中使用带有sudo的kdialog,通过将SUDO_ASKPASS导出到一行脚本中来实现。
kdialog --password "enter password: "
使用sudo -A命令可以正常运行,但是如果我在对话框中点击取消,sudo会忽略这个动作,并在延迟后重新尝试输入密码。一行脚本以kdialog的退出状态退出,如果点击取消,则其为非零值。
有没有办法让sudo放弃,就像通过输入control-C退出文本界面一样?
编辑 - 最终我搞清楚了发生了什么。如果你点击取消,kdialog会输出一个换行符。Sudo --askpass将其解释为空白密码,并开始处理错误密码。如果点击取消,则askpass脚本不得发出换行符。做到这一点的方法是
pe=$(kdialog --password 'enter password: ') && echo "$pe"
$SUDO_ASKPASS=$(which ksshaskpass)
。 - Noortheen Raja$
。 - Charles DuffySUDO_ASKPASS=$(which ksshaskpass)
- Noortheen Raja