1. убираем все лишнее в user.txt
cat users.txt | egrep ^.[^#]+
и сохраняем это в переменную это уже пример скрипта
#!/bin/sh
list=$(cat users.txt | egrep ^.[^#]+ )
2. крутим цикл по нему
#!/bin/sh
list=$(cat users.txt | egrep ^.[^#]+ )
for element in $list
do
echo "$element"
done
3. в цикле grep ищет в файле pass.txt соответствующую строку текущего юзера в цикле, и отображаем только его пароль
grep $element pass.txt | cut -f 2 -d ':'
В результате у нас получится что-то такое:
#!/bin/sh
list=$(cat users.txt | egrep ^.[^#]+ )
for element in $list
do
echo "$element"
grep $element pass.txt | cut -f 2 -d ':'
pass=$(grep $element pass.txt | cut -f 2 -d ':')
done
Собственно у вас уже есть все переменные и текущий юзер
$elemen
и его пароль
$pass
.
Все что вам остается теперь это впихнуть куда нужно, как это сделать я думаю вы уже разберетесь.
Вам может понадобиться для отладки сервис онлайн генератор
sed
вы не привели пример созданного /etc/passwd соответственно че там и как у вас хз, нужно смотреть
Опять же из тз, по умолчанию создавая юзера можно дать ему и домашнюю директорию и bash.
НО если по тз именно через сед то да нужен файл /etc/passwd с созданым юзером user_1
опять же есть тонкости к примеру с тем же паролем в котором могут быть спец символы тогда прийдется костылитьч через eval +echo