Ввод пароля в сквозном цикле
Сценарий, как у меня есть список корневых паролей. Но я не хочу продолжать пытаться вручную. Итак, я написал сценарий оболочки:
для меня в {1..26}
делать
су - >> результат
сделанный
и все мои пароли находятся в файле "try.txt".
Теперь в командной строке введите команду:
bash p2.sh <попытки.txt
Но он показывает ошибки: "Стандарт в должен быть tty"
Так есть ли способ, которым я могу ввести эти пароли с помощью некоторых кодов или команд, не вводя вручную каждый из них? Пожалуйста, расскажите о подходе командной строки вместо какого-либо продвинутого программного обеспечения. Я в этом для обучения. Спасибо:)
1 ответ
Правильный синтаксис такой:
while read my_pass
do
echo $my_pass | sudo -S command
done < file_name
Три комментария: вы не можете использовать su внутри файла скрипта, вам нужно будет использовать sudo с опцией -S, которая, согласно человеку,
Опция -S (stdin) заставляет sudo читать пароль со стандартного ввода вместо оконечного устройства.
Во-вторых, если вам не нравится записывать имя_файла внутри скрипта, используйте один из аргументов $n, например, $1, если это единственный передаваемый параметр.
В-третьих, вы уверены, что собирать все свои пароли в один незашифрованный файл - это хорошая идея?