Подробный гайд: Смена пароля в РЕД ОС: smbpasswd, samba-tool и kpasswd в домене AD и на сервере
Сценарий 1. РЕД ОС — Контроллер домена Active Directory (Samba AD DC)
Если ваш сервер является контроллером домена Samba 4, база данных пользователей хранится в формате AD (LDAP/Kerberos). Утилита smbpasswd здесь устарела и не рекомендуется.
Правильный способ смены пароля доменного пользователя:
Используется утилита samba-tool.
1. Откройте терминал и получите права root (или используйте sudo):
su -
# или
sudo -i
2. Смените пароль пользователю домена (например, ivanov):
samba-tool user setpassword ivanov
3. Система попросит ввести новый пароль и подтвердить его.
4. Опционально: Если нужно сбросить пароль и заставить пользователя сменить его при следующем входе:
samba-tool user setpassword ivanov --must-change-at-next-login
Сценарий 2. РЕД ОС — Рядовой член домена Active Directory (Member Server)
Если сервер введен в домен AD (через realmd, sssd или winbind), пароли доменных пользователей хранятся на контроллерах AD. Локально через smbpasswd их сменить нельзя.
Как сменить пароль доменного пользователя с клиента РЕД ОС:
Вам нужно изменить пароль непосредственно в AD. Сделать это с Linux-машины можно через Kerberos.
1. Убедитесь, что у вас установлен пакет krb5-workstation:
sudo dnf install krb5-workstation
2. Смените пароль, используя утилиту kpasswd (указывайте пользователя в формате UPN — имя@ДОМЕН):
kpasswd ivanov@DOMAIN.LOCAL
3. Введите старый пароль, затем дважды новый.
Примечание:
Если вам нужно, чтобы доменный пользователь мог заходить на локальные SMB-шары этого РЕД ОС, и у вас настроен winbind, то пароль Samba синхронизируется с паролем AD автоматически. Ручное добавление через smbpasswd в этом случае не требуется.
Сценарий 3. Классический smbpasswd (Локальные пользователи Samba / Standalone)
Если ваш РЕД ОС работает как автономный файловый сервер, и вам нужно создать/сменить пароль для локального пользователя Samba (который не является доменным, либо вы используете устаревшую схему NT-домена), используйте smbpasswd.
Шаг 1. Проверка наличия пользователя в ОС
Пользователь должен сначала существовать в локальной базе Linux.
id smbuser
Если пользователя нет, создайте его:
sudo useradd -M -s /sbin/nologin smbuser
Шаг 2. Добавление пользователя в базу Samba и установка пароля
Используйте флаг -a (add), чтобы добавить пользователя в базу passdb.tdb и сразу задать пароль:
sudo smbpasswd -a smbuser
Введите новый пароль Samba и подтвердите его. (Пароль Samba может отличаться от пароля Linux).
Шаг 3. Смена пароля для уже существующего пользователя Samba
Если пользователь уже был добавлен ранее, и вы просто хотите обновить ему пароль:
sudo smbpasswd smbuser
Шаг 4. Активация/Деактивация пользователя
Если при создании пользователь был отключен, его нужно включить:
sudo smbpasswd -e smbuser # Включить (enable)
sudo smbpasswd -d smbuser # Отключить (disable)
Шаг 5. Перезапуск служб Samba
Чтобы изменения вступили в силу (хотя обычно база подхватывается на лету, перезапуск не помешает):
sudo systemctl restart smb nmb
(В РЕД ОС службы обычно называются smb и nmb. Если у вас старая версия, могут быть smbd и nmbd).
Полезные команды и диагностика в РЕД ОС
1. Просмотр всех пользователей в локальной базе Samba:
sudo pdbedit -L -v
(Эта команда покажет подробную информацию о всех пользователях, добавленных через smbpasswd).
2. Проверка конфигурации Samba:
Прежде чем перезапускать службы, убедитесь, что в /etc/samba/smb.conf нет синтаксических ошибок:
testparm
3. Решение проблем с SELinux (Специфика РЕД ОС):
РЕД ОС по умолчанию использует SELinux. Если вы меняете пароли, но пользователи не могут авторизоваться, проверьте контексты SELinux.
Посмотрите статус:
sestatus
Если есть проблемы с доступом Samba к домашним директориям, разрешите это:
sudo setsebool -P samba_enable_home_dirs on
4. Просмотр логов Samba:
Если смена пароля не помогает и авторизация не проходит, смотрите логи:
sudo tail -f /var/log/samba/log.smbd
# или
sudo journalctl -u smb -f
Важно:
- Если у вас Samba AD DC -> используйте
samba-tool user setpassword. - Если у вас клиент в AD -> используйте
kpasswd. - Если у вас простой файловый сервер с локальными юзерами -> используйте
sudo smbpasswd -a <user>.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.