Ввод пароля в сквозном цикле

Сценарий, как у меня есть список корневых паролей. Но я не хочу продолжать пытаться вручную. Итак, я написал сценарий оболочки:

для меня в {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, если это единственный передаваемый параметр.

В-третьих, вы уверены, что собирать все свои пароли в один незашифрованный файл - это хорошая идея?

Другие вопросы по тегам