[英]Running sudo scripts/bash commands on a remote
我需要远程启动执行sudo任务的bash脚本,例如chmod和ntpdate并回显到gpio。
cron工作也许是其中某些最佳的解决方案,但是cron让我头疼。 如果可以的话,我想在这个地方过去。
我已经确认我的脚本可以在本地运行(我可以ssh进入计算机并运行,而不会打ic。)
但是,如果我尝试像这样远程运行它们:(这在C ++系统调用中)
ssh user @ pc'bash -s'</home/user/myScript.sh
带有sudo的命令失败。
sudo chmod失败,原因:不存在tty且未指定AskPass程序回显gpio失败:写入错误:设备或资源繁忙sudo ntpdate失败,失败:不存在tty且未指定askpass程序
谁能帮忙解释一下,或帮助我确定这里发生的事情吗?
我愿意接受创可贴和其他方法的帮助,谢谢!
您已经自己发现了问题:
sudo chmod失败,原因:没有tty存在并且没有指定askpass程序
如果您通过ssh运行shell脚本,而该脚本想运行sudo
,则sudo本身会要求用户输入密码。 但是ssh会话不是tty! sudo现在应该如何提示输入密码以及如何获取密码?
如果您在脚本中提供密码,则可以执行此操作(如果其他人可以读取该脚本,这将非常危险!)
script.sh:
回显“您的密码” | 须藤-S
作为替代解决方案,您可以与特权更高的用户一起运行ssh会话。
ssh privileged_user @ pc'bash -s'</home/user/myScript.sh
所有这些都带有一定的危险。 使用特权更高的用户从cript运行所有命令也很危险!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.