我想使用我的密码作为参数运行sudo,以便我可以在脚本中使用它。我尝试过
sudo -S mypassword execute_command
但是没有任何成功。有什么建议吗?
echo mypassword | sudo -S command
将密码传递给sudo
然而,其他人提出的建议不涉及将密码作为命令的一部分传递,例如检查用户是否是root,这些建议出于安全原因可能更好。
sudo chmod -R 0100 myScriptFolder
?这样不就解决了安全问题(前提是没有人以root身份使用你的计算机)吗? - Brōtsyorfuzthrāxchild.stdout.on('data', (data)=>{
console.log('Received:', data.toString())
})
- Jason Nichols您可以设置脚本的 s
位,这样它就不需要 sudo
并作为 root 运行(您也不需要在脚本中编写 root 密码):
sudo chmod +s myscript
+s
是 setuid 位。+t
是 sticky 位。 - Robᵩecho -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x"
。它会提示 sudo: run -x: command not found
。你有什么办法解决这个问题吗? - Bee一种选择是使用sudo命令的-A选项。这将运行一个要求输入密码的程序。不过,你可以编写一个脚本,直接输出密码,以便程序继续执行。
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
sudo
,使其不要为某些程序/用户/组询问密码,以避免这种肮脏的黑客攻击,这样会更好。 - rush