Linux shell脚本 - 如何切换用户并运行脚本?

时间:2018-02-08 17:43:52

标签: linux shell ssh sudo su

我目前正在编写.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,没有来自脚本的任何反馈,这通常会给我一些信息。

我做错了什么?

2 个答案:

答案 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"