LINUX.ORG.RU
решено ФорумAdmin

Не запускается samba с ldap

 ,


0

1

У самбы в качестве passdb backend указан ldap сервер.

При запуске выдает такое:

smbd version 3.6.23-14.el6_6 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2011
[2015/03/05 15:38:07.603868,  0] 
auth/auth_util.c:80(_smb_create_user)
  smb_create_user: Running the command `/usr/sbin/smbldap-useradd -m "root@domain"' gave 1
[2015/03/05 15:38:07.604080,  0] auth/auth_util.c:785(make_system_session_info_from_pw)
  make_server_info_info3 failed with NT_STATUS_NO_SUCH_USER

то, из-за чего ругается smbldap-useradd, мне понятно: не нравится символ «@».

Мне непонятно, почему вообще запускается add user script при запуске службы.

Ну, допустим, самба хочет достать пароль пользователя root@domain из ldap. И не находит. А он там есть.

Лог ldap:

[root@server samba]# cat /var/log/ldap.log | grep 2739
Mar  5 15:21:16 server slapd[9188]: conn=2739 fd=82 ACCEPT from IP=127.0.0.1:53108 (IP=0.0.0.0:389)
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=0 BIND dn="uid=smbadmin,ou=local,ou=users,dc=xx,dc=ru" method=128
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=0 BIND dn="uid=smbadmin,ou=local,ou=users,dc=xx,dc=ru" 
mech=SIMPLE ssf=0
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=0 RESULT tag=97 err=0 text=
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=1 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=1 SRCH attr=supportedControl
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=2 SRCH base="dc=xx,dc=ru" scope=2 deref=0 filter="(&(objectClass=sambaDomain)(sambaDomainName=domain))"
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=2 SRCH attr=sambaDomainName sambaNextRid sambaNextUserRid sambaNextGroupRid sambaSID sambaAlgorithmicRidBase objectClass
Mar  5 15:21:16 server slapd[9188]: conn=2739 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
Mar  5 15:21:17 server slapd[9188]: conn=2739 fd=82 closed (connection lost)

Из этого лога как бы следует, что самба даже ничего и не спрашивает у лдапа про рута...



Последнее исправление: qwertyui (всего исправлений: 4)

Ответ на: комментарий от zgen
[global]
	workgroup = domain
	realm = domain.xx.RU
	server string = Samba Server Version %v
	interfaces = eth0
	map to guest = Bad User
	passdb backend = ldapsam:ldap://127.0.0.1
	passwd program = /usr/sbin/smbldap-passwd -u %u
	passwd chat = "Changing password for*\nNewpassword* %n\n *Retype new password* %n\n"
	passwd chat debug = Yes
	log file = /var/log/samba/log.%m
	max log size = 50
	name resolve order = wins lmhosts host bcast
	load printers = No
	add user script = /usr/sbin/smbldap-useradd -m "%u"
	delete user script = /usr/sbin/smbldap-userdel -r "%u"
	add group script = /usr/sbin/smbldap-groupadd -p "%g"
	delete group script = /usr/sbin/smbldap-groupdel "%g"
	add user to group script = /usr/sbin/smbldap-groupmod -m "%u "%g"
	delete user from group script = /usr/sbin/smbldap-groupmod -x "%u "%g"
	set primary group script = /usr/sbin/smbldap-usermod -g "%g "%u"
	add machine script = /usr/sbin/smbldap-useradd -w -i "%u"
	username map script = /etc/samba/scripts/mapusers.sh
	logon path = 
	logon home = 
	domain logons = Yes
	preferred master = Yes
	domain master = Yes
	wins support = Yes
	ldap admin dn = uid=smbadmin,ou=local,ou=users,dc=xx,dc=ru
	ldap group suffix = ou=domain,ou=groups
	ldap machine suffix = ou=domain,ou=computers
	ldap passwd sync = yes
	ldap suffix = dc=xx,dc=ru
	ldap ssl = no
	ldap user suffix = ou=domain,ou=users
	admin users = admin
	cups options = raw	

#============================ Share Definitions ==============================

дальше пошли Share Definitions

qwertyui
() автор топика
Ответ на: комментарий от qwertyui

Начните с того, что уберите вот это вот всё,
passwd chat = «Changing password for*\nNewpassword* %n\n *Retype new password* %n\n»
passwd chat debug = Yes
passwd program = /usr/sbin/smbldap-passwd -u %u
add user script = /usr/sbin/smbldap-useradd -m «%u»
delete user script = /usr/sbin/smbldap-userdel -r «%u»
add group script = /usr/sbin/smbldap-groupadd -p «%g»
delete group script = /usr/sbin/smbldap-groupdel «%g»
add user to group script = /usr/sbin/smbldap-groupmod -m «%u »%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x «%u »%g"
set primary group script = /usr/sbin/smbldap-usermod -g «%g »%u"
add machine script = /usr/sbin/smbldap-useradd -w -i «%u»
username map script = /etc/samba/scripts/mapusers.sh

zgen ★★★★★
()
Ответ на: комментарий от zgen

Удалил эти строчки. Самба заработала. Стал добавлять по одной. Оказалось, что причина в

username map script = /etc/samba/scripts/mapusers.sh
Этот скрипт преобразует имя пользователя из формата domain\username в username@domain Соответственно что стало происходить: самба смотрит в ldap имя пользователя username, не находит, добавляет (add user script я раскомментировал). В ldap появляется username (в данному случае root, рядом с root@domain). Дальше, при последующих перезапусках smb проверка пользователя в ldap проходит штатно... Непонятно только, почему не ищет или не находит пользователей с «собакой».

qwertyui
() автор топика
Ответ на: комментарий от zgen

пара нубских вопросов: 1) участвует ли pam в аутентификации юзеров самбой 2) обращается ли функция getpwnam к pam или берет данные непосредственно из /etc/passwd?

qwertyui
() автор топика
Ответ на: комментарий от qwertyui

А собственно, вот и решение: # service nscd start # service nslcd start

Для того, чтобы к этому прийти, пришлось залезть в исходники и потратить 2 дня.

qwertyui
() автор топика
Ответ на: комментарий от qwertyui

1) участвует ли pam в аутентификации юзеров самбой

нет.

2) обращается ли функция getpwnam к pam

Без понятия.

zgen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.