#ssh #sudo
#ssh #sudo
Вопрос:
Чтобы проверить, есть ли у пользователя sudo (сразу на нескольких серверах), я использую следующую команду: echo -e "$Password" | ssh -tt -q $Username@$Server "sudo -S -p '' echo ok" 2>amp;1
Этот подход, похоже, работает, но только в том случае, если пароль принят. Если у вас (по какой-либо причине) снова запрашивают пароль, команда зависает, а вместе с ней и весь скрипт. Есть ли способ принудительно завершить выполнение этой команды, если пароль не принят?
Ответ №1:
Команда не зависает. Он ожидает.
Вы указали, что sudo
команда должна считывать пароль из stdin ( -S
) и не запрашивать у пользователя ввод пароля ( -p ''
). Если вы введете неправильный пароль, sudo
будет ждать повторной попытки — по умолчанию три раза.
Я не могу найти какой-либо опции для sudo
— ни в командной строке, ни в sudo.conf
файле конфигурации — которая позволит вам запросить пароль только один раз, а затем выйти.