假设您以用户A的身份运行脚本:sudo -u A ./script.sh在该script.sh中我们有一行调用另一个脚本script2.sh与另一个用户B:sudo -u B ./script2.sh。现在我被提示输入用户B的密码。有没有办法提供密码uppon调用?
附:我知道它可以创建的所有安全漏洞。请不要提我。
是的你有选择权。但是,您必须在执行脚本时提供该密码,或者在脚本本身对其进行硬编码。试试下面的例子: -
echo 'passwordofB' | sudo -u B -S ./script2.sh
你也可以这样做: -
sudo -u A ./script.sh passwordofB #as a command line parameter
现在在script.sh
内: -
echo $1 | sudo -u B -S ./script2.sh
你正在从脚本sudo -u B ./script2.sh
执行另一个脚本./script.sh
吧?因此,使用echo $1 | sudo -u B -S ./script2.sh
更改该行并将第一个脚本作为sudo -u A ./script.sh passwordofB
运行,其中passwordofB
是用户'B'的密码