Bug 20239 - Passwortänderung gegen einen Slave PDC
Passwortänderung gegen einen Slave PDC
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Samba
UCS 2.4
Other Linux
: P5 normal (vote)
: UCS 2.4-1
Assigned To: Stefan Gohmann
Andreas Büsching
:
Depends on:
Blocks: 20241
  Show dependency treegraph
 
Reported: 2010-10-04 16:11 CEST by Andreas Büsching
Modified: 2010-12-10 16:36 CET (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
ldif des Benutzers windowsuser (1.78 KB, text/x-ldif)
2010-11-22 16:24 CET, Sönke Schwardt-Krummrich
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Büsching univentionstaff 2010-10-04 16:11:02 CEST
Die Passwortänderung gegen einen Slave PDC funktioniert momentan nicht. Unter Windows erscheint bei der Änderung des Passworts die Fehlermeldung, dass die Komplexität nicht ausreichend ist. Im Samba-Log ist dazu folgendes zu sehen:

[2010/09/29 03:22:53.032879,  0] auth/pampass.c:586(smb_pam_account)
  smb_pam_account: PAM: UNKNOWN PAM ERROR (12) during Account Management for User: anton1
[2010/09/29 03:22:53.034734,  0] auth/pampass.c:794(smb_pam_accountcheck)
  smb_pam_accountcheck: PAM: Account Validation Failed - Rejecting User anton1!
Traceback (most recent call last):
  File "/usr/share/univention-samba/password_check", line 45, in ?
    pwdCheck = univention.password.Check(None, username)
  File "/usr/lib/python2.4/site-packages/univention/password.py", line 45, in __init__
    self._getConnection()
  File "/usr/lib/python2.4/site-packages/univention/password.py", line 58, in _getConnection
    self.lo = univention.uldap.getMachineConnection(start_tls, decode_ignorelist)
NameError: global name 'start_tls' is not defined

Das Austauschen der Zeile

    self.lo = univention.uldap.getMachineConnection(start_tls, decode_ignorelist)

durch

    self.lo = univention.uldap.getMachineConnection(start_tls = 2, decode_ignorelist = [])

behebt zwar den Traceback, aber nach einem längeren Timeout kommt unter Windows dann die Fehlermeldung 'Sie haben keine Berechtigung das Passwort zu ändern.
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2010-10-04 18:34:24 CEST
Die betreffende Zeile wurde durch
self.lo = univention.uldap.getMachineConnection(start_tls=2)
ausgetauscht. Danach waren Passwortänderungen an WindowsClients wieder möglich.

Changelogeintrag wurde erstellt.
Paket univention-python neu importiert und gebaut.
Comment 2 Tim Petersen univentionstaff 2010-11-22 15:46:44 CET
Ich erhalte nun folgendes auf einem 2.4-1 Slave gegen Windows XP, wenn ich das Passwort bei erneuter Anmeldung ändern möchte:

[2010/11/22 15:44:25.337572,  0] auth/pampass.c:586(smb_pam_account)
  smb_pam_account: PAM: UNKNOWN PAM ERROR (12) during Account Management for User: windowsuser
[2010/11/22 15:44:25.337654,  0] auth/pampass.c:794(smb_pam_accountcheck)
  smb_pam_accountcheck: PAM: Account Validation Failed - Rejecting User windowsuser!
[2010/11/22 15:44:43.214467,  0] lib/util_sock.c:551(read_fd_with_timeout)
  read_fd_with_timeout: timeout read. read error = Input/output error.
[2010/11/22 15:44:55.572870,  0] lib/util_sock.c:551(read_fd_with_timeout)
  read_fd_with_timeout: timeout read. read error = Input/output error.
[2010/11/22 15:45:07.992704,  0] lib/util_sock.c:551(read_fd_with_timeout)
  read_fd_with_timeout: timeout read. read error = Input/output error.
[2010/11/22 15:45:20.376722,  0] lib/util_sock.c:551(read_fd_with_timeout)
  read_fd_with_timeout: timeout read. read error = Input/output error.


Am Windows Logon erhalte ich daraufhin die Meldung: "Sie haben keine Berechtigung, Ihr Kennwort zu ändern."

reopen
Comment 3 Sönke Schwardt-Krummrich univentionstaff 2010-11-22 16:24:18 CET
Created attachment 2847 [details]
ldif des Benutzers windowsuser

Im Anhang befindet sich die Ausgabe von
ldapsearch -xLLL -D "$ldap_hostdn" -w $(< /etc/machine.secret) uid=windowsuser

root@qaslave:~# su - windowsuser
Sie müssen Ihr Passwort sofort ändern (Passwortablauf).
su: Authentifizierungstoken ist nicht mehr gültig; neues erforderlich
(Ignoriert)
windowsuser@qaslave:~$
Comment 4 Sönke Schwardt-Krummrich univentionstaff 2010-11-22 16:25:54 CET
Während des Passwortwechsels wird 
"/usr/share/univention-samba/password_check windowsuser" aufgerufen und das neue Passwort übergeben. Dies liefert den Exitstatus 0 zurück.
Comment 5 Sönke Schwardt-Krummrich univentionstaff 2010-11-22 17:22:21 CET
Das Maschinenkonto hatte nicht die notwendigen LDAP-Berechtigungen, um die LDAP-Attribute shadowMax und krb5PasswordEnd am Benutzerobjekt zu modifizieren. Die LDAP-ACLs in univention-ldap wurden entsprechend angepasst.
Beide Attribute müssen nach dem Einspielen der neuen ACLs auch über ein anonymes ldapsearch abrufbar sein.

Changelogeintrag wurde erweitert
Comment 6 Tim Petersen univentionstaff 2010-11-23 11:45:55 CET
(In reply to comment #5)
> Das Maschinenkonto hatte nicht die notwendigen LDAP-Berechtigungen, um die
> LDAP-Attribute shadowMax und krb5PasswordEnd am Benutzerobjekt zu modifizieren.
> Beide Attribute müssen nach dem Einspielen der neuen ACLs auch über ein
> anonymes ldapsearch abrufbar sein.

Ich kann beide Attribute nun per anonymem ldapsearch finden, allerdings besteht das Problem am Windows Logon weiterhin mit gleicher Debugausgabe.

reopen
Comment 7 Tim Petersen univentionstaff 2010-11-23 11:49:09 CET
(In reply to comment #6)
> das Problem am Windows Logon weiterhin mit gleicher Debugausgabe.


Ich habe im UDM die Option "Passwort bei der nächsten Anmeldung ändern" gesetzt.
Windows Logon fordert mich auf, ein neues Passwort einzugeben, ich Anschluss erhalte ich "Sie haben keine Berechtigung das Passwort zu ändern"
Comment 8 Stefan Gohmann univentionstaff 2010-11-25 14:41:34 CET
Kannst du auf dem DC Master den LDAP Debuglevel aktivieren (auf 4) und die Logausgabe anhängen?
Comment 9 Stefan Gohmann univentionstaff 2010-11-30 06:31:08 CET
Die ACLs für shadowLastChange wurden auch angepasst. In der QA sollten auch Benutzer mit zugewiesener Passwort Ablaufrichtlinie getestet werden.
Comment 10 Andreas Büsching univentionstaff 2010-11-30 12:27:24 CET
Die Änderung des Passworts gegen einen Slave PDC funktioniert, wenn

- Der Benutzer es selbstständig ändert
- Passwort bei nächster Anmeldung ändern gesetzt ist
- Die Passwortrichtlinie es definiert.

ChangeLog-Entrag vorhanden. Typo korrigiert
Comment 11 Sönke Schwardt-Krummrich univentionstaff 2010-12-10 16:36:44 CET
UCS 2.4-1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden:
"Clone This Bug".