3

У меня есть доступ к серверу Linux, где я могу sudo для «Foo», как это без пароля:

sudo su - foo

Когда я стану пользователем 'foo', я смогу запустить такой скрипт:

/dir/foo_user_script.sh

'Foo_user_script' может выполняться только пользователем foo, а не моим пользователем. Таким образом, я могу запустить скрипт, сначала изменив пользователя 'foo', а затем запустив скрипт.

Тем не менее, я пытаюсь автоматизировать некоторые процессы с помощью Java-клиента Java ghanmed. ЧаВо Ганимеда предполагает, что для запуска нескольких команд я должен использовать такую конструкцию:

Session.execCommand("echo Hello && echo again")

Я пытался что-то вроде этого, но вторая команда (foo_user_script) не выполнена:

Session.execCommand("sudo su - foo && /dir/foo_user_script.sh")

Я думаю, что это не работает, потому что su запускает новую оболочку.

Можно ли как-нибудь запустить скрипт /dir/foo_user_script.sh в одной команде?

Замечания:
"sudo -l" показывает мне это:

(root) NOPASSWD: /bin/su - foo

Спасибо за помощь!

1 ответ1

5

sudo -u foo /dir/foo_user_script.sh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .