У меня есть доступ к серверу 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
Спасибо за помощь!