sudo over ssh - зависает, когда пароль не принят - PullRequest
0 голосов
/ 18 марта 2019

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

1 Ответ

3 голосов
/ 18 марта 2019

Команда не висит.Он ожидает.

Вы указали, что команда sudo должна считывать пароль из стандартного ввода (-S) и не предлагать пользователю ввести пароль (-p '').Если вы введете неправильный пароль, sudo будет ждать повторной попытки - по умолчанию три раза.

Я не могу найти никакой опции для sudo - ни в командной строке, ни вsudo.conf файл конфигурации - это позволит вам только один раз запросить пароль и затем выйти.

...