Bash перенаправляет выходную форму passwd для использования grep для проверки правильности смены пароля - PullRequest
0 голосов
/ 08 декабря 2018

как гласит заголовок, я пытаюсь получить вывод при запуске passwd, чтобы убедиться, что пароль был изменен правильно, и остановив passwd от вывода всего на терминал.

Некоторое предыстория, я пытаюсь написать скрипт, который будет проходить через список серверов по SSH, менять пароль и перечислять, был ли он успешным или нет.Я не пытаюсь заставить его вернуть информацию исходному хосту, на котором выполняется скрипт.Я осознаю, что способ, которым я делаю это, не является хорошей практикой для безопасности, но серверы находятся в закрытой сети, и печать их на стандартный вывод и использование его в стандартном вводе не составляет большого труда, пока я очищаю историю.

Ниже приведен код, который я пробовал.Я также пытаюсь остановить показ passwd текста.Цвет слова «успешно» не меняется

echo -e 'Test1\nTest1' | passwd TestUSR | grep --color 'successfully' > /dev/null 2&1

В приведенном ниже примере показан результат 0, поэтому он не получает успешно печатается

echo -e 'Test1\nTest1' | passwd TestUSR | grep -oc 'successfully'

У меня естьпопытался передать информацию в тестовый файл для последующего извлечения, и файл остался пустым.Результат приведенного ниже кода равен 0, поэтому grep получает информацию.

echo -e 'Test1\nTest1' | passwd TestUSR > test.txt; grep -oc 'successfully' test.txt

Буду признателен за любую помощь, потому что я не могу понять, как остановить показ текста на экране ниже, а затем прочитать его, чтобы отобразить более простое сообщение для пользователя.И да, они все отображаются на одной строке в терминале (протестировано на Ubuntu 18.4 и Parrot OS)

Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
...