Почему мой пользователь домена самбы создается сценарием удара, ведут себя по-другому по сравнению с одним созданным вручную?

У меня есть сервер самбы, который использует LDAP в качестве его бэкенда. PDC работает как ожидалось, пока я создаю пользователей вручную. Это означает, что, если я использую следующую команду для создания нового пользователя, я могу войти в систему на машине Windows с помощью пользовательского боба, и меня не просят изменить пароль:

sudo smbldap-useradd -a -P bob

С тех пор у меня нет доступа к паролям в виде открытого текста пользователей, я использую ldif файл для изменения sambaNTPassword атрибута пользователя. Это - единственный способ, которым я мог придумать, потому что мне только предоставляют хеш NTLM пароля. Тем не менее, пароль затем успешно обновляется, и я могу войти в систему машина Windows.

Вот проблема: пользователей и их обзоры хеша предоставляют мне в массе. Они сначала записаны в postgresql базу данных. Затем я должен запустить скрипт, который читает список пользователей (новые пользователи) от базы данных наряду с ее обзором NTLM. Так как этот процесс должен быть автоматизирован, я должен разработать сценарий удара с этой целью. Вот часть моего сценария, который выполняет вышеупомянутую команду:

#!/bin/bash    
/usr/bin/expect <<EOD
spawn smbldap-useradd -a -P $username
expect "New password:" { send -- "$tot\n" }
expect "Retype new password:" { send -- "$toto\n" }
EOD

Пользователь успешно создается, и я могу войти в систему машина Windows с ним. Проблема состоит в том, что я получаю следующее сообщение:

сегодня Ваш пароль истекает. Вы хотите изменить его?

Кто-либо, где различие прибывает из? Мне оба метода кажутся идентичными.

Мой сервер: Ubuntu 12.04 Samba LTS: 3.6.3

Следующее является записью LDAP пользовательского боба, когда я создаю его вручную (введите пароли вручную), и затем обновите его атрибут sambaNTPasssword:

$ ldapsearch -x uid=bob
# extended LDIF
#
# LDAPv3
# base <dc=mydomain,dc=com> (default) with scope subtree
# filter: uid=bob
# requesting: ALL
#

# bob, Users, mydomain.com
dn: uid=bob,ou=Users,dc=mydomain,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: sambaSamAccount
cn: bob
sn: bob
uid: bob
uidNumber: 1166
gidNumber: 513
homeDirectory: /home/bob
loginShell: /bin/bash
gecos: System User
givenName: bob
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: bob
sambaSID: S-1-5-21-343724861-3572058179-3643679278-3332
sambaLMPassword: B267DF22CB945E3EAAD3B435B51404EE
sambaAcctFlags: [U]
sambaPwdLastSet: 1402503403
sambaPwdMustChange: 1488903403
shadowLastChange: 16232
shadowMax: 1000
sambaNTPassword: FCFC9A2A1E3F4F9F5E1EBA9A4592507E

И следующее является записью LDAP пользовательского боба, когда я создаю его с помощью сценария (я обновляю sambaNTPassword в этом случае):

# bob, Users, mydomain.com
dn: uid=bob,ou=Users,dc=mydomain,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: sambaSamAccount
cn: bob
sn: bob
uid: bob
uidNumber: 1168
gidNumber: 513
homeDirectory: /home/bob
loginShell: /bin/bash
gecos: System User
givenName: bob
sambaPwdLastSet: 0
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 2147483647
displayName: bob
sambaAcctFlags: [UX]
sambaSID: S-1-5-21-343724861-3572058179-3643679278-3336
sambaNTPassword: FCFC9A2A1E3F4F9F5E1EBA9A4592507E
1
задан 11 June 2014 в 19:33
1 ответ

Проверьте страницу руководства для smbldap-useradd , похоже, вам нужно установить -B 0 в вашем скрипте. Согласно к этому , он снимет флажок «Пользователь должен сменить пароль» в учетной записи.

Вы можете проверить свой smb.conf, чтобы убедиться, что у вас нет неожиданных smbldap-useradd настройки.

0
ответ дан 4 December 2019 в 08:36

Теги

Похожие вопросы