sudo完成后如何返回脚本

时间:2016-09-05 18:50:59

标签: shell ssh sudo

我在服务器上并运行一个包含以下代码的脚本文件。

ssh username@servername
sudo su - root
cd /abc/xyz
mkdir asdfg

我能够ssh ...但是接下来的命令不起作用..脚本不是sudo-ing。任何的想法?

编辑:能够创建一个mech id,然后做一些事情......虽然仍在寻找上述问题的答案:|

2 个答案:

答案 0 :(得分:2)

首先,你的命令将会#34;卡住"在第一行,因为它将进入交互模式。 ssh命令将需要用户提供密码(除非使用了sshkey)。如果ssh登录到远程服务器,那么它将等待来自标准输入的用户命令。

其次,ssh命令后面的行只有在第一个进程退出时才会执行。这就是为什么你的剧本不是" sudoing" - 它正在等待ssh结束。

因此,如果您要在远程服务器上运行命令,则将该命令作为参数放入与ssh连接相同的行中。在你的情况下:

ssh user@server sudo su - root

但这对你来说并不满意。我建议你创建一个脚本,告诉你要在远程服务器上执行什么,然后执行脚本。

ssh user@server scriptName

这里的sudo非常棘手,因为你的脚本可能会再次陷入交互模式,等待插入密码,所以我建议你再根据脚本进行思考。

答案 1 :(得分:0)

MB47!
您想在远程计算机上运行脚本,对吗?
在远程计算机上,创建一个包含要执行的命令的文件。
然后,在另一台计算机上运行ssh user@machine /path/to/script/you/created/earlier
我希望这有帮助!

ALinuxLover