23.21. Синхронизация паролей Samba и Linux
Проблема
Пользователи Samba могут изменять свои пароли с помощью smbpasswd
, но при этом их пароли Linux на сервере Samba остаются неизменными. Чтобы упростить администрирование и повысить удобство пользователей, требуется настроить автоматическую синхронизацию паролей между системами.
Решение
Для обеспечения синхронизации паролей добавьте следующие строки в секцию [global]
файла smb.conf
:
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = "*Enter OLD password*" %o\n "*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password changed*"
Этот фрагмент кода вызывает команду passwd
для изменения паролей пользователей в файле /etc/passwd
при изменении паролей Samba. Директива passwd chat
управляет процессом изменения пароля и контролирует вывод, предоставляя пользователям понятные инструкции.
Комментарий
Важно учитывать, что синхронизация паролей работает только в одну сторону: смена паролей в Linux не изменяет пароли Samba. То есть, если пользователь меняет свой пароль через интерфейс Linux, этот пароль не обновляется автоматически в системе Samba.
Макроподстановки для директивы passwd chat
В директиве passwd chat
используются следующие макроподстановки:
- %u — имя пользователя;
- %o — старый пароль;
- %n — новый пароль;
- \n — перевод строки, который обеспечивает разбиение вывода
passwd chat
на несколько строк для упрощения процесса смены пароля.
Эти макроподстановки позволяют настроить более точное управление процессом смены паролей. Полный список доступных макроподстановок для Samba можно найти в документации smb.conf(5)
.
Если у вас есть потребность в двусторонней синхронизации паролей, рассмотрите использование дополнительных инструментов или скриптов, которые автоматически обновляют пароли в обеих системах. Однако такие решения могут потребовать дополнительных настроек и администрирования.
См. также
smb.conf(5).