Решено: Samba + ldapscripts, не хочет добавлять пользователей

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
gard
Сообщения: 215

Решено: Samba + ldapscripts, не хочет добавлять пользователей

Сообщение gard »

Привет всем!
Столкнулся с проблемой. Нужно сделать файловое хранилище без домена, однако учетные записи пользователей хочется хранить в LDAP для последующей привязки в Jabber. Решил использовать ldapscripts. Для начала создал в ldap структуру:

Код: Выделить всё

dn: ou=Users,dc=urfu
objectClass: top
objectClass: organizationalUnit
ou: Users

dn: ou=Computers,dc=urfu
objectClass: top
objectClass: organizationalUnit
ou: Computers

dn: ou=Groups,dc=urfu
objectClass: top
objectClass: organizationalUnit
ou: Groups

Затем добавил дву группы уже с помощью ldapscripts:

Код: Выделить всё

dn: cn=Users,ou=Groups,dc=urfu
objectClass: posixGroup
cn: Users
gidNumber: 10004
description: Group account
structuralObjectClass: posixGroup
entryUUID: 161a0548-a7a4-1031-952d-a1d501fc5479
creatorsName: cn=admin,dc=urfu
createTimestamp: 20121011040132Z
entryCSN: 20121011040132.110126Z#000000#000#000000
modifiersName: cn=admin,dc=urfu
modifyTimestamp: 20121011040132Z

dn: cn=Computers,ou=Groups,dc=urfu
objectClass: posixGroup
cn: Computers
gidNumber: 10005
description: Group account
structuralObjectClass: posixGroup
entryUUID: a01b88e8-a7a4-1031-952f-a1d501fc5479
creatorsName: cn=admin,dc=urfu
createTimestamp: 20121011040523Z
entryCSN: 20121011040523.645630Z#000000#000#000000
modifiersName: cn=admin,dc=urfu
modifyTimestamp: 20121011040523Z

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

Через ldapscripts все пользователи и группы заводятся замечательно. В конфиге самба следующее:

Код: Выделить всё

#Настройки OpenLDAP
passdb backend = ldapsam:ldap://127.0.0.1
ldap ssl = off
ldap suffix = dc=urfu
ldap admin dn = "cn=admin,dc=urfu"
#ldap idmap suffix = ou=Idmap
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap passwd sync = Yes
ldap delete dn = yes

#Скрипты для управления юзерами и группами, первый используется smbpasswd -a
add user script = /usr/sbin/ldapadduser "%u" Users
add group script = /usr/sbin/ldapaddgroup "%g"
add user to group script = /usr/sbin/ldapaddusertogroup "%u" "%g"
delete user script = /usr/sbin/ldapdeleteuser "%u"
delete group script = /usr/sbin/ldapdeletegroup "%g"
delete user from group script = /usr/sbin/ldapdeleteuserfromgroup "%u" "%g"
set primary group script = /usr/sbin/ldapsetprimarygroup "%u" "%g"
rename user script = /usr/sbin/ldaprenameuser "%uold" "%unew"
add machine script = /usr/sbin/ldapaddmachine "%u" Computers

Само описание Самбы в ldap выглядит так (после smbpaswd -W):

Код: Выделить всё

dn: sambaDomainName=SAMBASRV,dc=urfu
sambaDomainName: SAMBASRV
sambaSID: S-1-5-21-4231628449-694983756-2302091911
sambaAlgorithmicRidBase: 1000
objectClass: sambaDomain
sambaNextUserRid: 1000
structuralObjectClass: sambaDomain
entryUUID: fdd684c4-a7a4-1031-9530-a1d501fc5479
creatorsName: cn=admin,dc=urfu
createTimestamp: 20121011040800Z
sambaMinPwdLength: 5
sambaPwdHistoryLength: 0
sambaLogonToChgPwd: 0
sambaMaxPwdAge: -1
sambaMinPwdAge: 0
sambaLockoutDuration: 30
sambaLockoutObservationWindow: 30
sambaLockoutThreshold: 0
sambaForceLogoff: -1
sambaRefuseMachinePwdChange: 0
sambaNextRid: 1005
entryCSN: 20121011045423.852093Z#000000#000#000000
modifiersName: cn=admin,dc=urfu
modifyTimestamp: 20121011045423Z


Проблема в том, что при использовании smbpasswd -a user, пользователь в самба добавлен не будет. Добавится только posixAccoun для пользователя, то есть фактически выполнится ldapadduser, который указан в качетве add user script для самба.

Код: Выделить всё

root@smb:~# smbpasswd -a tux12
New SMB password:
Retype new SMB password:
Successfully added user tux12 to LDAP
^C
,,,,,
dn: uid=tux12,ou=Users,dc=urfu
objectClass: account
objectClass: posixAccount
cn: tux12
uid: tux12
uidNumber: 10002
gidNumber: 10004
homeDirectory: /home/tux12
loginShell: /bin/false
gecos: tux12
description: User account
structuralObjectClass: account
entryUUID: 1600f454-a7ae-1031-8756-a99e1628b3e4
creatorsName: cn=admin,dc=urfu
createTimestamp: 20121011051306Z
entryCSN: 20121011051306.913147Z#000000#000#000000
modifiersName: cn=admin,dc=urfu
modifyTimestamp: 20121011051306Z

Если повторить то же самое: smbpasswd -a tux12, то самба дописывает свои поля к имеющемуся posixAccount для пользователя:

Код: Выделить всё

dn: uid=tux12,ou=Users,dc=urfu
objectClass: account
objectClass: posixAccount
objectClass: sambaSamAccount
cn: tux12
uid: tux12
uidNumber: 10002
gidNumber: 10004
homeDirectory: /home/tux12
loginShell: /bin/false
gecos: tux12
description: User account
structuralObjectClass: account
entryUUID: 1600f454-a7ae-1031-8756-a99e1628b3e4
creatorsName: cn=admin,dc=urfu
createTimestamp: 20121011051306Z
sambaSID: S-1-5-21-4231628449-694983756-2302091911-1006
displayName: tux12
sambaNTPassword: 3DBDE697D71690A769204BEB12283678
sambaPasswordHistory: 00000000000000000000000000000000000000000000000000000000
 00000000
sambaPwdLastSet: 1349932445
sambaAcctFlags: [U          ]
userPassword:: e1NTSEF9bTdONDJiZ3M1ei9CZkZRdWZabXJNRnFlaHRRVGkrR0s=
entryCSN: 20121011051405.929110Z#000000#000#000000
modifiersName: cn=admin,dc=urfu
modifyTimestamp: 20121011051405Z

Также иногда при повторном вызове команды пишет, что такой пользователь в ldap уже существует и не запускает add user script...

Таким образом двух зайцев убить не получается. Выходит, что:
1) сначала нужно создавать пользователя через ldapscripts,
2) потом уже заводить его в samba через smbpasswd -a.

Это нормальное поведение или все таки самба при вызове ldapscripts из add user script должна добавить пользователя со своими полями помимо posixAccount?
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Решено: Samba + ldapscripts, не хочет добавлять пользователей

Сообщение gard »

Все, разобрался, оказывается виной всему недонастроенный конфиг ldapscripts, а имено генерация пароля для пользователя не проходила.
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали: