Для запуска команд sudo на экземпляре ec2 - PullRequest
5 голосов
/ 09 декабря 2011

Я не могу запустить "sudo su" на моем клиенте ec2, я подключаюсь к клиенту через java-программу и запускаю команду через программу.Я могу запустить такие команды, как "ls" и "ifconfig".

Я получаю сообщение об ошибке "sudo: извините, у вас должен быть tty для запуска sudo".

Как мне запуститькоманда, я использую Jsch для SSH к моему экземпляру ec2.

Ответы [ 2 ]

6 голосов
/ 14 декабря 2011

Вы можете сделать "sudo" без псевдо-tty с JSch, используя опцию -S для sudo.

См. Sudo.java на веб-сайте JSch дляполный пример.

(я автор JSch.)

4 голосов
/ 09 декабря 2011

Похоже, по умолчанию Jsch не выделяет псевдо-tty для удаленного сеанса - это может нарушить работу некоторых программ, которые ожидают интерактивного запуска. Похоже, что вы можете использовать функцию ChannelExec.setPty для запроса pty - но я не работал с Jsch и не могу проверить это сам.

...