Задать вопрос
@4321

Не получается составить скрипт?

Необходимо создать пользователей из списка users.txt с домашними папками, затем задать им пароль из списка pass.txt. Записать файл приветствия в домашней директории пользователя, заменив username на имя пользователя. С помощью sed заменить оболочку с /bin/sh на /bin/bash.
users.txt
user_1 #пользователь бухгалтерии
user_2 #пользователь техподдержки
user_3 #пользователь отдела кадров
pass.txt
user_1:123456
user_2:654321
user_3:098765
Greetings!
Hello "username", it nice to meet you!
  • Вопрос задан
  • 566 просмотров
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
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
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы