23.6. Массовое преобразование системных пользователей

Проблема

Ручное создание учетных записей Samba для всех пользователей может быть трудоемким и неэффективным. Возможно ли автоматизировать процесс преобразования системных учетных записей в учетные записи Samba, чтобы упростить администрирование?

Решение

Да, частичная автоматизация возможна. В составе Samba включён сценарий mksmbpasswd, который позволяет преобразовать все записи из файла /etc/passwd в формат smbpasswd и сохранить их в /etc/samba/smbpasswd. Однако пароли не будут перенесены, так как они хранятся в зашифрованном виде в /etc/shadow. Поэтому их необходимо будет задать вручную для каждого пользователя. До этого момента новые учетные записи будут заблокированы.

Чтобы начать процесс, сначала создайте резервную копию /etc/passwd, чтобы сохранить исходные данные:

# cp /etc/passwd /etc/passwd-old

Затем отредактируйте файл /etc/passwd-old и удалите учетные записи, которые не должны использоваться на сервере Samba. Создание учетных записей для ненужных пользователей создаёт риск безопасности, поэтому включайте только тех пользователей, которым требуется доступ к ресурсам Samba.

После редактирования преобразуйте оставшиеся учетные записи из /etc/passwd-old в формат smbpasswd:

# cat /etc/passwd-old | /usr/sbin/mksmbpasswd > /etc/samba/smbpasswd

Теперь новые учетные записи Samba готовы, но они заблокированы до тех пор, пока не будут заданы пароли. Активировать пользователя Samba можно командой smbpasswd:

# smbpasswd username
New SMB password:
Retype new SMB password:

Эта команда позволяет задать новый SMB-пароль для каждого пользователя, что разблокирует учетную запись в Samba.

Комментарий

Обычно mksmbpasswd рекомендуется запускать только один раз при первой настройке. Однако вы можете повторно использовать этот сценарий для добавления новых пользователей в /etc/samba/smbpasswd. Чтобы избежать создания дубликатов, перед каждым запуском тщательно редактируйте копию /etc/passwd-old, добавляя только новых пользователей.

Пример для добавления новых пользователей:

# cat /etc/passwd-old | /usr/sbin/mksmbpasswd >> /etc/samba/smbpasswd

Рекомендации по безопасности и управлению паролями

При массовом преобразовании учетных записей важно учитывать вопросы безопасности:

Автоматизация добавления пользователей Samba с использованием скриптов

Для удобства вы можете создать собственный сценарий для добавления пользователей в Samba, который будет включать автоматическое добавление новых пользователей, их проверку и активацию с помощью smbpasswd. Пример простого скрипта для добавления новых пользователей:

#!/bin/bash

# Путь к временной копии passwd
TEMP_PASSWD="/etc/passwd-new"

# Создаем временную копию
cp /etc/passwd $TEMP_PASSWD

# Удаляем ненужные учетные записи
sed -i '/nologin/d' $TEMP_PASSWD
sed -i '/false/d' $TEMP_PASSWD

# Преобразуем пользователей в формат smbpasswd
cat $TEMP_PASSWD | /usr/sbin/mksmbpasswd >> /etc/samba/smbpasswd

# Удаляем временную копию
rm $TEMP_PASSWD

echo "Пользователи добавлены в Samba."

Использование скриптов для добавления пользователей может значительно упростить администрирование Samba, особенно в крупных системах с большим количеством учетных записей.

См. также

Документация по командам mksmbpasswd и smbpasswdmksmbpasswd(8), smbpasswd(5), smbpasswd(8).