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

Linux shell script - How to switch user and run a script?

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

我做错了什么?

尝试
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"

如果有人对此有疑问,请更新。

我最后做的是使用 ssh 密钥登录。我的系统管理员必须参与才能进行设置,但至少这是一个可行的选择。

ssh -i /path/to/sshKey user2@$remoteHost "/path/only/accessible/to/user2/someScript.sh"