我正在自动化部署过程,我希望能够在我的机器上调用一个 .sh 文件,让它完成我的构建并将 .zip 上传到服务器,然后在服务器上做一些事情。我需要做的一件事要求我是 root。所以,我想做的是:
ssh user@172.1.1.101 <<END_SCRIPT
su -
#password... somehow...
#stop jboss
service server_instance stop
#a bunch of stuff here
#all done!
exit
END_SCRIPT
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
而不是 su,使用 sudo 和在 sudoers 中设置的 NOPASSWD 以获取适当的命令。您需要尽可能限制允许的命令集。如果您不熟悉 sudoer 文件语法,让它调用为 root 命令运行脚本可能是最干净的方法,也是迄今为止最容易确保安全的方法。对于需要加载完整环境的命令/脚本,sudo su - -c command虽然可能有点矫枉过正。
| 归档时间: |
|
| 查看次数: |
35014 次 |
| 最近记录: |