Назад | Перейти на главную страницу

Linux SMB Server + PAM: как предоставить пользователям LDAP разрешения?

У меня есть SMB-сервер Linux Mint, настроенный по умолчанию (т.е. apt-get), так что у меня есть такой набор:

passdb backend = tdbsam

У меня LDAP правильно настроен с PAM (и логины пользователей через ssh работают правильно).

Я пробовал это сделать в настройках акции:

valid users = family

куда family это группа на сервере LDAP.

Однако, когда я пытаюсь подключиться к серверу как пользователь ldap, он не позволяет мне подключиться. Если я подключаюсь как локальный пользователь, он работает.

Кроме того, панель управления «Общие папки» Ubuntu не показывает сетевых пользователей в списке людей, которым предоставляется доступ к различным общим папкам.

Так: почему это не работает?

Дополнения:

Вот что я считаю важной частью [очень] длинного файла журнала, помеченного именем подключенного компьютера:

Сопоставление пользователя [SEC1] [christopher] с рабочей станции [DEFIANT]

попытка сделать user_info для Кристофера (Кристофера)

создание строк для структуры user_info Кристофера

создание блобов для структуры user_info Кристофера

сделал user_info для Кристофера (Кристофера)

check_ntlm_password: Проверка пароля для несопоставленного пользователя [SEC1] [christopher] @ [DEFIANT] с новым интерфейсом пароля

check_ntlm_password: сопоставленный пользователь: [SEC1] [christopher] @ [DEFIANT]

check_ntlm_password: вызов auth_context создан случайным образом

вызов:

[0000] F9 89 7B 47 67 0B 29 49 .. {Gg.) I

Проверить авторизацию для: [christopher]

check_ntlm_password: гостю нечего было сказать

Проверить авторизацию для: [christopher]

is_myname ("SEC1") возвращает 1

push_sec_ctx (0, 0): sec_ctx_stack_ndx = 1

push_conn_ctx (0): conn_ctx_stack_ndx = 0

установка sec ctx (0, 0) - sec_ctx_stack_ndx = 1

Маркер безопасности: (NULL)

Токен UNIX пользователя 0 Основная группа равна 0 и содержит 0 дополнительных групп

pdb_getsampwnam (TDB): ошибка при загрузке базы данных. Ключ: USER_christopher

pop_sec_ctx (0, 0) - sec_ctx_stack_ndx = 0

check_sam_security: не удалось найти пользователя christopher в passdb.

check_ntlm_password: аутентификация Sam для пользователя [christopher] НЕ ПРОШЛАСЬ с ошибкой NT_STATUS_NO_SUCH_USER

check_ntlm_password: Аутентификация для пользователя [christopher] -> [christopher] ВЫПОЛНЕНА с ошибкой NT_STATUS_NO_SUCH_USER

Ошибка проверки пароля NTLMSSP для SEC1 \ christopher: NT_STATUS_NO_SUCH_USER

Нет такого пользователя christopher [SEC1] - с гостевой учетной записью

Обратите внимание, что «SEC1» - это имя сервера, а «DEFIANT» - имя клиента. Я также пробовал подключиться с именем пользователя "\"; он правильно распознал домен, но это все равно ничего не изменило.

В то время как PAM аутентифицирует пользователей по базе данных LDAP, Samba аутентифицирует пользователей по своей tdbsam бэкэнд. Простое решение - добавить их либо smbpasswd -a <username> или pdbedit -a -u <username>. Сложное решение - использовать LDAP как Samba. passdb backend.

РЕДАКТИРОВАТЬ: обратите внимание, что если вы настроите Samba для использования LDAP как passdb backend, он будет аутентифицировать только пользователей LDAP, а не локальных.