Пользователь без прав администратора не может изменить пароль Samba.

Вопрос или проблема

Пользователи Samba не могут изменить свои пароли. Пароль может быть изменен только с использованием учетной записи root с помощью команды

smbpasswd -a <имя_пользователя>

Но я хочу, чтобы пользователи могли сами изменять свои пароли. При попытке изменения пароля с помощью учетной записи, не имеющей прав root, я получаю следующее сообщение об ошибке.

$ smbpasswd
Старый пароль SMB:
Новый пароль SMB:
Повторите новый пароль SMB:
Не удалось подключиться к машине 127.0.0.1: NT_STATUS_LOGON_FAILURE
Не удалось изменить пароль для user1

Есть ли причины для этого? Как я могу это исправить?

Каждый метод аутентификации обычно проверяется в Домене. Поскольку в smb.conf указано “security=ads”, то при проверке аутентификации пользователя она всегда проверяется сначала в Домене, и если пользователь обозначен как “Not Found or logon failure”, то не произойдет переход к следующему методу, т.е. sam (локальная база данных пользователей).

Укажите следующую строку в глобальном разделе smb.conf:

auth methods = guest sam_ignoredomain winbind:ntdomain

Затем перезапустите службу smb.

Ответ или решение

Если ваши обычные пользователи не могут изменять свои пароли Samba, и это возможно только из-под root, это может свидетельствовать о неправильной настройке службы Samba или особенностях конфигурации безопасности вашей системы. Давайте разберем возможные причины и предложим решения для исправления этой ситуации.

Анализ проблемы и возможные причины

  1. Конфигурация безопасности:

    Вы указали, что в конфигурационном файле smb.conf используется строка security=ads. Это означает, что Samba настроена на использование режима Active Directory Security (ADS). В этом режиме все аутентификации изначально проверяются через домен Active Directory. Если пользователя нет в домене или возникает какая-либо ошибка, подобная NT_STATUS_LOGON_FAILURE, авторизация завершится неудачно, и использование локальной базы данных пользователей (sam) не произойдет.

  2. Права доступа:

    Ошибка Could not connect to machine 127.0.0.1: NT_STATUS_LOGON_FAILURE также может указывать на то, что у пользователя недостаточно привилегий для изменения пароля через интерфейс Samba из-за установленных политик безопасности.

Решения

  1. Изменение конфигурации smb.conf:

    Чтобы разрешить обычным пользователям изменять пароли, необходимо в глобальную секцию вашего конфигурационного файла smb.conf добавить следующую строку:

    auth methods = guest sam_ignoredomain winbind:ntdomain

    Это изменение позволит Samba использовать локальную базу данных пользователей (sam), если проверка аутентификации неэффективна в домене. Затем перезапустите службу Samba, чтобы изменения вступили в силу:

    sudo systemctl restart smbd
    sudo systemctl restart nmbd
  2. Проверка прав доступа:

    Убедитесь, что пользователи имеют необходимые права для изменения своих паролей. Возможно, потребуется соответствующая настройка политик безопасности как на стороне Samba, так и в Active Directory, если таковой используется.

  3. Диагностика с помощью логов:

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

    sudo cat /var/log/samba/log.smbd
    sudo cat /var/log/samba/log.nmbd

Заключение

Правильная настройка конфигурационного файла Samba и проверка прав доступа значительно упростят управление паролями пользователями. Эти рекомендации помогут вам устранить проблему и настроить систему таким образом, чтобы пользователи могли самостоятельно изменять свои пароли без привилегий root. Важно следовать обновлениям и документировать изменения в настройках для поддержки системного администрирования и обеспечения безопасности вашей сети.

Оцените материал
Добавить комментарий

Капча загружается...