Привет ЛОР, возникла необходимость генерить пароли для доступа к wifi и высылать их на почту, с почтой проблем нет, но вот заменять пароли в файле users проблемно, помогите со скриптом. Необходимо чтобы можно было список номеров использовать (перед sed менять именно нужную строку), если через for то он меняет все строки, while read line тоже, нужно чтобы у каждого юзера был свой пароль(юзеров около сотни, так что копировать сто раз sed не вижу смысла).
Если делать так, то он создаст около 100 passgen-N.txt
cat_pass=$(cat /var/SCRIPTS/passgen.txt)
list_users=«12 16 17 21»
for i in $list_users; do
makepasswd --char 14 > /var/SCRIPTS/passgen-«$i».txt
cat_pass=$(cat /var/SCRIPTS/passgen-«$i».txt)
sed -i «$i s/\:\= \».*\«/\:\= \»$cat_pass\«/» /etc/freeradius/users
done
Итоговый вариант
list_users="12 16 17 21"
for i in $list_users; do
cat_pass=$(makepasswd --char 14)
sed -i "$i s/\:\= \".*\"/\:\= \"$cat_pass\"/" /etc/freeradius/users
done