Перейти к содержанию

Модуль 3. Задание 1.

Решение

BR-SRV

Additional.iso

По заданию import.sh должен лежать в корне Additional.iso, но на момент написания решения там только Users.csv, поэтому скрипт пишем сами. Если образ обновят, этот шаг возможно уберём.

Монтируем Additional.iso в /mnt/additional так же, как в модуле 2 (задание 6).

Пара моментов по Users.csv:

  • кодировка Windows-1252 (не 1251), в адресах есть португальские буквы вроде ã и é
  • разделитель ;, первая строка заголовок, переводы строк в формате Windows (CRLF)
  • поля: имя, фамилия, роль, телефон, подразделение (OU), улица, индекс, город, страна, пароль
  • 300 пользователей в пяти подразделениях, логинов нет, собираем их как имя.фамилия

Переносим пароль, имя, фамилию, роль, телефон и подразделение. Адрес через samba-tool не задать, так что его пропускаем.

/root/import.sh
#!/bin/bash
sed 's/\r$//' "$1" | tail -n +2 > /tmp/users.csv

cut -d';' -f5 /tmp/users.csv | sort -u | while read -r ou; do
    samba-tool ou add "OU=$ou" < /dev/null
done

while IFS=';' read -r first last role phone ou street zip city country password; do
    login=$(echo "$first.$last" | tr -d ' ' | tr '[:upper:]' '[:lower:]')

    samba-tool user add "$login" "$password" --userou="OU=$ou" \
        --given-name="$first" --surname="$last" --job-title="$role" \
        --telephone-number="$phone" < /dev/null
done < /tmp/users.csv

Запускаем, путь к CSV передаём аргументом. Скрипт работает несколько минут:

bash /root/import.sh /mnt/additional/Users.csv

Проверка:

samba-tool user list | wc -l
samba-tool user show malachi.alexander

HQ-CLI

Пробуем войти под импортированным пользователем, пароль P@ssw0rd1:

su - malachi.alexander