嗨,所以基本上我要做的是在运行脚本之前运行一个位于远程服务器上的脚本,以root身份运行su -。
我需要在运行命令su -之后运行脚本,否则它不会运行。在这个状态下,服务器将被sudo安装。
现在我有ssh -t $USERNAME@$IP "su - &&/home/$用户名/firstboot/firstboot.sh"但是它将我作为su -连接到远程服务器上,但不执行脚本。
如有任何意见,不胜感激。
现在我有
ssh -t $USERNAME@$IP "su - && /home/$USERNAME/firstboot/firstboot.sh"
,但它连接我作为su -在远程服务器上,但不执行脚本。
基本上,你不能像那样使用su
。暂时忘记ssh
;如果运行su - && date
,date
命令只会在退出su
shell后执行(因为command1 && command2
意味着"先运行command1
,如果成功退出,再运行command2
)。
如果要在su
环境中运行命令,则需要将-c
选项用于su
:
su - -c date
在您的脚本中,这意味着您要运行:
su - -c /home/$USERNAME/firstboot/firstboot.sh
所以你的ssh命令应该是这样的:
ssh -t $USERNAME@$IP su - -c /home/$USERNAME/firstboot/firstboot.sh