【发布时间】:2021-06-13 17:40:35
【问题描述】:
我需要运行一个需要以 root 权限远程运行的脚本。因此,我在脚本的开头添加了“sudo su”命令。然而 ssh 只是登录远程服务器并停留在 sudo su 命令,它不会从脚本的下一行继续。
server.sh
sudo -s
sudo apt-get update
sudo apt-get upgrade
client.sh
scp -i "$key.pem" server.sh "$dns:/tmp"
ssh -tt -i "$key.pem" $dns "bash /tmp/server.sh"
server.sh 和 client.sh 在同一个本地目录下。当我运行 ./client.sh 时,远程运行的 server.sh 卡在第一行并且不继续执行“sudo apt-get update”命令。这种行为的原因是什么,有解决办法吗?
【问题讨论】:
-
sudo通常会提示输入用户密码。听起来你的脚本卡在那里了。 -
您是否有权访问 远程服务器 上的
root用户?如果是,则使用该登录,否则使用普通用户登录,您将无法访问root -
我的 root 用户不需要密码。当我登录时,“sudo su”会自动将终端转换为根终端。但是我想从本地计算机运行脚本并自动执行此过程。
-
你应该删除
sudo -s,它是块 -
如果我删除了,我怎样才能拥有root权限并自动化呢?
标签: linux bash ssh scripting root