我有一个使用某些命令的 shell 脚本sudo
。当我从终端运行此脚本时 - 它会要求我输入密码并且运行时会出现任何问题。但是当我尝试从 GUI 运行可执行 shell 脚本(双击)时,它不会要求我输入密码 - 因此不起作用。
我的 shell 脚本示例:
c1=$(dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g' | sha1sum | awk '{print $1}')
如何从 GUI 运行脚本并sudo
顺利传递所有命令?
答案1
你可以sudo
从标准输入传递密码, 像这样:
echo 'yourpassword' | sudo -S yourcommand
使用-S
告诉sudo
从 stdin 读取密码,该密码来自位echo 'yourpassword'
。
您还可以编辑 visudo,这样sudo
就不会提示输入密码,要么仅适用于您的特定命令,要么始终。
警告:以纯文本形式存储密码是一个非常糟糕的主意