Консультация по синхронизации паролей между пользователем системы Ubuntu 22.04 и пользователем Samba.

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

Как автоматически обновить пароль пользователя Samba после изменения пароля общего пользователя в системе Ubuntu?

Я использую OpenLDAP в качестве базы данных.

Пароль пользователя Samba автоматически обновляется после изменения пароля с помощью команды passwd.

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

Для автоматической синхронизации паролей между пользователями системы Ubuntu 22.04 и пользователями Samba, использующими OpenLDAP в качестве бэкенда, необходимо настроить механизм, который будет обновлять пароль Samba после изменения пароля локального пользователя. Вот пошаговое руководство по настройке этой функции.

Шаг 1: Убедитесь, что встроены необходимые пакеты

Для начала, убедитесь, что у вас установлены следующие пакеты:

  • samba
  • samba-common-bin
  • libnss-ldap
  • libpam-ldap

Вы можете установить их с помощью команды:

sudo apt update
sudo apt install samba samba-common-bin libnss-ldap libpam-ldap

Шаг 2: Настройка Samba для использования LDAP

Откройте конфигурационный файл Samba, который обычно расположен по адресу /etc/samba/smb.conf. Вам нужно убедиться, что параметры LDAP правильно указаны. Добавьте или измените следующие строки в секции [global]:

passdb backend = ldapsam:ldap://localhost/
ldap suffix = dc=example,dc=com
ldap userdn = cn=admin,dc=example,dc=com

Не забудьте заменить example.com на ваш домен.

Шаг 3: Настройка PAM для синхронизации паролей

Теперь необходимо настроить PAM, чтобы обновлять пароли Samba при изменении пароля системы. Для этого откройте файл /etc/pam.d/common-password и добавьте следующие строки:

password required pam_unix.so nullok obscure min=4 max=8 md5
password requisite pam_succeed_if.so uid >= 1000 quiet
# Добавьте следующую строку для синхронизации паролей Samba
password optional pam_smbpass.so

Если pam_smbpass.so отсутствует, установите пакет libpam-smbpass:

sudo apt install libpam-smbpass

Шаг 4: Настройка скрипта для синхронизации паролей

Создайте скрипт, который будет автоматически обновлять пароль Samba, когда пользователь меняет пароль через passwd. Создайте файл, например, /usr/local/bin/sync_samba_password.sh и добавьте следующее содержимое:

#!/bin/bash

# Синхронизация пароля пользователя Samba
username=$1
password=$2

# Обновляем пароль Samba
smbpasswd -s -a $username <<< "$password
$password"

Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/sync_samba_password.sh

Шаг 5: Изменение конфигурации passwd

Теперь нужно изменить файл /etc/pam.d/common-password, чтобы при изменении пароля также вызывался ваш скрипт. Добавьте следующую строку:

password required pam_exec.so /usr/local/bin/sync_samba_password.sh

Шаг 6: Тестирование

Теперь протестируйте настройку, изменив пароль пользователя через команду passwd <username>. Убедитесь, что пароль Samba для этого пользователя также обновляется.

Заключение

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

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

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