Сценарий оболочки Linux - Как переключить пользователя и запустить скрипт?

В настоящее время я пишу сценарий.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 ответа

Пытаться ssh -t myUser@$remotehost "sudo -u user2/path/only/accessible/to/user2/someScript.sh"

Если вам нужен доступ к оболочке после этого, вы можете использовать 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"

licensed under cc by-sa 3.0 with attribution.