我目前正在编写一个.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的身份登录,但是脚本不会给我任何反馈信息,而通常情况下脚本都会给我一些信息。
我做错了什么?
sudo su
- 或者sudo
或者su
中同时使用,只选择其中一个。ssh
中你忘记执行cd
命令了,为什么不直接运行脚本(不需要cd
),例如:"sudo su - user2 && /path/only/accessible/to/user2/someScript.sh"
。