我目前正在编写.sh脚本,以便在4台不同的计算机上部署不同的应用程序。现在我遇到了以另一个用户身份运行脚本的问题。我需要使用myUser使用我的凭据登录,然后sudo su到user2运行特定的脚本。
通常情况下,我会手动执行以下操作:
ssh myUser@remotehost
[Type in password]
sudo su - user2
cd /path/only/accessible/to/user2
./someScript.sh
当我尝试
时 ssh -t myUser@$remotehost "sudo su - user2 && /path/only/accessible/to/user2 && ./someScript.sh"
我被问到我的密码,然后保持记录为user2,没有来自脚本的任何反馈,这通常会给我一些信息。
我做错了什么?
答案 0 :(得分:1)
尝试
ssh -t myUser@$remotehost "sudo -u user2 /path/only/accessible/to/user2/someScript.sh"
如果您之后需要shell访问权限,则可以使用
ssh -t myUser@$remotehost "sudo -u user2 /path/only/accessible/to/user2/someScript.sh && /bin/bash -l"
答案 1 :(得分:0)
如果有人对此感到疑惑,请进行更新。
我最后做的是用ssh密钥登录。我的系统管理员必须参与才能设置它,但至少它是一个可行的选择。
ssh -i /path/to/sshKey user2@$remoteHost "/path/only/accessible/to/user2/someScript.sh"