Доступ к Sudo при использовании SSHJ
Я пишу Java-программу, которая может программно SSH подключаться к любой удаленной машине и выполнять команды. Я повторно использую существующую библиотеку Java для этого: https://github.com/shikhar/sshj
Проблема, с которой я сталкиваюсь, состоит в том, чтобы выяснить, как sudo переключить пользователя как таковое:
msgstr "sudo su - [имя пользователя здесь]".
Если вы запустите это вручную в терминале, вам будет предложено ввести пароль. Насколько я понимаю, если вы находитесь в файле sudoers и правильно вводите свой пароль, вы сможете запустить команду для переключения пользователя как такового. Я не хочу, чтобы пользователь вводил свой пароль. В идеале, программа не должна требовать вмешательства человека для запуска.
Чего я хотел бы добиться: программно отправить пароль через сокет, чтобы пользователю не пришлось вводить его в стандартном режиме. Если пользователь может войти на удаленный компьютер, используя свои учетные данные, программа должна иметь возможность подобрать его. на эти же учетные данные и передать его, когда sudo запрашивает пароль у пользователя.
После того, как я некоторое время гуглю, я не могу понять, как этого добиться с помощью этой библиотеки. Не берите в голову, я на самом деле не эксперт в деталях SSH более низкого уровня. У кого-нибудь есть идеи по этому поводу?
Спасибо, парни.
2 ответа
Мы написали библиотеку Overthere поверх SSH/J, которая поддерживает вход с помощью sudo с запросом пароля или без него. Посмотрите на это, чтобы увидеть, соответствует ли оно вашим потребностям.
Это не должно быть проблемой. Вы можете настроить sudo, чтобы не требовать пароль для определенных пользователей. Посмотрите документацию sudo и справочную страницу sudoers.