2016-08-21 5 views
1

Я пытаюсь написать программу для удаленного администрирования системы. С этой целью я выдаю команды SSH и программно передаю вход через канал. Я также фиксирую их результаты.Как использовать sudo программно через трубу?

Некоторые команды требуют повышения, поэтому мне нужно выдавать команды, такие как ssh [email protected] "sudo apt-get install blah".

Проблема заключается в том, sudo отказывается упор принять пароль через терминал, если он не находит реальный терминал на его стандартный ввод. Есть ли способ, которым я могу обмануть sudo, чтобы это разрешить?

+0

Возможной дубликаты [правильного способ Суды через SSH] (http://stackoverflow.com/questions/10310299/proper- way-to-sudo-over-ssh) – Kenster

+0

См. также http://stackoverflow.com/questions/233217/how-to-pass-the-password-to-su-sudo-ssh-without-overriding-the-tty – Kenster

ответ

3

здесь: https://askubuntu.com/questions/470383/how-to-avoid-prompt-password-for-sudo

echo 'password' | sudo -S command 

-S принимает пароль из стандартного ввода

+0

Ну, это было легче, чем я ожидал. –

+0

@SodAlmighty - вы можете взглянуть на ссылку в другом комментарии Кенстера для обсуждения проблем безопасности (в комментариях). – seph

Смежные вопросы