Массовое создание учетных записей в Samba AD
После развертывания контроллера домена на базе Samba AD перед администратором встает задача наполнения базы данных домена учетными записями сотрудников. Если в организации работает более сотни человек, ручное добавление каждого пользователя через стандартные средства становится трудоемким и чреватым ошибками процессом.
Содержание
💡 Присоединяйтесь к нашим сообществам!
Будьте в курсе новых статей, обновлений и полезных материалов:
1. Подготовка исходных данных
Первый шаг — подготовка файла с данными пользователей. Удобнее всего использовать формат CSV (значения, разделенные запятыми), так как он легко создается в любом табличном редакторе (например, LibreOffice Calc или Microsoft Excel) и также просто обрабатывается скриптами.
1.1. Создайте файл с именем users.csv.
1.2. В первой строке укажите заголовки столбцов. Обязательно придерживайтесь предложенного порядка, так как скрипт ожидает увидеть именно такую структуру:
- username — имя учетной записи (логин).
- password — начальный пароль для пользователя.
- givenname — имя сотрудника.
- surname — фамилия сотрудника.
- mail — электронная почта.
Пример содержимого файла users.csv:
username,password,givenname,surname,mail
ivanov,Passw0rd!,Иван,Иванов,ivanov@itsch.ru
petrova,Passw0rd!,Петр,Петрова,petrova@itsch.ru
sidorov,Passw0rd!,Сидор,Сидоров,sidorov@itsch.ru

Важно: Убедитесь, что файл сохранен в кодировке UTF-8, чтобы корректно обрабатывались русские буквы. После редактирования в табличном процессоре проверьте, чтобы разделителем была именно запятая.

2. Скрипт для автоматического создания пользователей
Создайте в той же директории, где лежит файл users.csv, новый файл, например, create_users.sh. Скопируйте в него приведенный ниже код.
Этот Bash-скрипт выполняет следующие действия:
1. Проверяет наличие файла с данными.
2. Читает файл построчно, пропуская заголовок.
3. Для каждой строки извлекает значения (логин, пароль, имя, фамилию, email).
4. Запускает утилиту samba-tool для создания пользователя с переданными параметрами.
5. В случае успеха явно устанавливает пароль и отключает требование его смены при первом входе.
#!/bin/bash
CSV_FILE="users.csv"
if [ ! -f "$CSV_FILE" ]; then
echo "Ошибка: файл $CSV_FILE не найден"
exit 1
fi
tail -n +2 "$CSV_FILE" | while IFS=',' read -r username password givenname surname mail; do
echo "Создаю пользователя: $username"
# Создание пользователя
samba-tool user create "$username" "$password" \\
--given-name="$givenname" \\
--surname="$surname" \\
--mail-address="$mail"
if [ $? -eq 0 ]; then
echo "✓ Пользователь $username создан успешно"
# Устанавливаем пароль
samba-tool user setpassword "$username" --newpassword="$password"
# Отключаем истечение срока пароля
samba-tool user setexpiry "$username" --noexpiry
echo " Пароль установлен и не требует смены"
else
echo "✗ Ошибка при создании $username"
fi
echo "---"
done
echo "Готово!"
3. Запуск и выполнение
Чтобы скрипт можно было выполнить, необходимо дать ему соответствующие права и запустить от имени пользователя, имеющего права на добавление записей в домен (обычно от root или доменного администратора).
3.1. Разрешите выполнение скрипта:
chmod +x create_users.sh
3.2. Запустите процесс создания пользователей:
./create_users.sh
В процессе работы скрипт будет выводить на экран информацию о каждом создаваемом пользователе. Если возникнет ошибка (например, пользователь уже существует или неверный формат email), вы увидите соответствующее предупреждение, но обработка остальных записей продолжится.
4. Проверка результатов
После завершения работы скрипта рекомендуется выборочно проверить созданные учетные записи. Это можно сделать несколькими способами:
- Просмотреть список всех пользователей домена:
samba-tool user list
- Посмотреть подробную информацию о конкретном пользователе:
samba-tool user show ivanov
- Попробовать пройти аутентификацию от имени одного из новых пользователей на любом клиенте, включенном в домен.
Заключение
Автоматизация процесса создания учетных записей через CSV-файл и скрипт позволяет администратору сократить время на рутинные операции до минимума. Предложенный метод легко масштабируется: вы можете добавить в CSV-файл сотни строк и запустить скрипт всего один раз.
При необходимости скрипт можно доработать, добавив, например, помещение пользователей в нужные группы (OU) или настройку дополнительных атрибутов.
🚀 Понравилась статья?
Подписывайтесь на наши соцсети чтобы не пропустить новые полезные материалы!