Модуль 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