通过脚本中的 GUI 收集用户密码

通过脚本中的 GUI 收集用户密码

我知道使用sudossh工具可以使用 GUI 在脚本中询问密码,方法是分别设置SUDO_ASKPASSSSH_ASKPASS变量,在变量中我们指定一个图形工具来询问密码。

但是如果我使用任何其他工具它可能会要求输入密码,例如,ksu它似乎不支持上述任何模式?(我在互联网上搜索过,但没有找到类似的东西KSU_ASKPASS,而且ksu似乎没有任何选项支持这一点)。

答案1

我想我最终找到了解决方案......

例如,假设您想要列出/root/文件夹的内容,并且为了执行此操作,您需要 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

相关内容