• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

[10.12 Sierra] Passwort-Fehler nach Zurückspielen von Open Directory LDAP

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.693
Ich habe folgendes verzwicktes Problem und würde mich über Lösungsideen freuen:

Nachdem unser Open Directory eines Tages einfach kaputt war, habe ich aus der Time Machine eine Sicherung zurückgeladen und OD damit auch wieder zum Laufen bekommen. Allerdings gab es bei einzelnen Usern den Effekt, dass diese sich nicht mehr anmelden konnten (Authentifzierungs-Fehler 50), obwohl das Passwort korrekt war.

Nach einer Recherche im Internet bin ich auf den Tipp gestoßen, die Passwort-Datenbank auszulesen mit

sudo mkpassdb -dump

Dann aus dem Output den Slot auszusuchen, in dem die problematische Userid aufgeführt ist und die Slot-ID im Open Directory im Attribut AuthenticationAuthority nach "ApplePasswordServer" einzufügen. Das hat auch bei einiges Usern funktioniert. Bei anderen hat OD die Änderung abgelehnt, weil der eingetragene Wert ungültig sei.

Nun muss ich leider sagen, dass ich nicht genau weiß, was ich da getan habe, da ich nirgends eine Erklärung der Zusammenhänge finden kann. Ich verstehe es so, dass es sich im OD um einen Verweis auf den Apple Password Server, um das Passwort über diesen prüfen zu lassen. Im OD selbst wird ja kein Passwort gespeichert, so weit ich das sehen kann. Und ich vermute, dass durch das Zurückspielen des Backups die Slot-IDs nicht mehr synchron waren/sind.

Leider funktioniert obiger Trick nicht immer. Beispielsweise kann ich einen bestimmten User nicht erfolgreich anlegen, d.h. ich kann ihn anlegen (in der Server App als Network User), aber dann kann er sich wieder nicht authentifizieren. Das Problem hängt mit der (textuellen) Userid zusammen. Gebe ich dem User irgendeine andere Userid, dann funktioniert es. Ich nehme daher an, dass diese Userid eine alte, falsche Verknüpfung hat. In der Password-Datenbank gibt es einen Slot mit dieser Userid, aber ich kann nicht sagen, ob die schon vorher drin steht. Ich vermute es aber, da es anders keinen Sinn ergibt.

Nun steht in der Beschreibung aus man mkpassdb unter anderem:

mkpassdb -deleteslot slot-ID

-deleteslot Invalidates a slot ID in the database.

Das klingt für mich, als ob das genau das wäre, was ich hier brauche, um den fehlerhaften Eintrag zu "invalidieren". Aber wenn ich das machen will, bekomme ich diese Antwort:

$ sudo mkpassdb -deleteslot 0xccf5e23a5dc011ec9d14a860b621b321
Password:
mkpassdb: illegal option -- d
usage: [-u username][-m weakmech][-a][-b][-e count][-n replica-name][-o][-p][-q]
-dump [slot-ID]
-header
-getglobalpolicy
-kerberize
-key
-list
-mergedb filepath
-mergeparent filepath omit-file
-rekeydb [key-size-in-bits]
-setadmin slot-ID [admin-class (0-7)]
-setglobalpolicy policies
-setkeyagent slot-ID
-setcomputeraccount slot-ID [off]


Das begreife ich nicht. Gibt es -deleteslot nun oder nicht??

Nach weiteren Recherchen gibt es auch die Möglichkeit die Synchronisierung zwischen OD und Password Server wiederherzustellen, indem man einen OD Export macht und diesen mittels mkpassdb -mergedb verknüpft, aber ich bin mir nicht ganz sicher, ob das stimmt und wie das genau geht.

Bin für jedweden mich irgendwie erhellenden Tipp äußerst dankbar!
 

Wuchtbrumme

Golden Noble
Registriert
03.05.10
Beiträge
21.568
Nachdem unser Open Directory eines Tages einfach kaputt war, habe ich aus der Time Machine eine Sicherung zurückgeladen und OD damit auch wieder zum Laufen bekommen. Allerdings gab es bei einzelnen Usern den Effekt, dass diese sich nicht mehr anmelden konnten (Authentifzierungs-Fehler 50), obwohl das Passwort korrekt war.
äh, Time Machine beim Mac OS X Server muss unbedingt lokal angeschlossen sein (also nicht etwa auf eine Time Capsule oder so). Schreibt (schrieb?) Apple selbst. Ob das nun den untenstehenden Erfolg gezeitigt hat kann ich nicht sagen. Ich buddle da auch immer nur, wenn ich muss ;)

Allerdings erinnere ich mich, dass ich OD immer aus dem entsprechenden Dialog (Server, Open Directory Master exportieren) selbst exportiert und dieses sparseimage als Backup abgespeichert habe - vielleicht ist das ja das Problem, dass Du jetzt noch nicht alles wichtige auf den gemeinsamen Gut-Stand zurückgesichert hast?
 

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.693
äh, Time Machine beim Mac OS X Server muss unbedingt lokal angeschlossen sein (also nicht etwa auf eine Time Capsule oder so). Schreibt (schrieb?) Apple selbst. Ob das nun den untenstehenden Erfolg gezeitigt hat kann ich nicht sagen. Ich buddle da auch immer nur, wenn ich muss ;)
Ach, und warum soll das so sein? ist mir neu. Hatte auch noch nie Probleme, zumindest keine, die damit zusammenhingen.

Allerdings erinnere ich mich, dass ich OD immer aus dem entsprechenden Dialog (Server, Open Directory Master exportieren) selbst exportiert und dieses sparseimage als Backup abgespeichert habe - vielleicht ist das ja das Problem, dass Du jetzt noch nicht alles wichtige auf den gemeinsamen Gut-Stand zurückgesichert hast?
So war das von mir gemeint mit dem Zurückspielen. Diesen Export hatte ich aus dem TM-Backup zurückgeholt und importiert.

Korrektur:

Ja, ich glaube das ist das Problem, da ich dieses Archiv nicht hatte. Inzwischen erstellt der Server jede Nacht einmal ein Archiv. Man lernt dazu, aber eben immer erst hinterher...

Kann ich ein Archiv erstellen, den LDAP löschen und das Archiv wieder importieren, um die fehlerhaften Einträge auch im Password Server zu korrigieren?

Alternativ: wie gebe ich ich die fehlerhaften Slots frei, wenn mkpassdb -deleteslot offensichtlich nicht mehr unterstützt wird?
 
Zuletzt bearbeitet:

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.693
Kann ich ein Archiv erstellen, den LDAP löschen und das Archiv wieder importieren, um die fehlerhaften Einträge auch im Password Server zu korrigieren?

Hab's ausprobiert: geht nicht. Die falschen Einträge bleiben leider erhalten.

Oder muss ich nach dem Export die Password Server Datenbank löschen? Wie?
 

Wuchtbrumme

Golden Noble
Registriert
03.05.10
Beiträge
21.568
Hi,

über welche Versionen von macOS und Mac OS X Server reden wir denn?
 

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.693
Wollte nur mal anmerken, dass ich hier nicht weitergekommen bin. Mein aktueller Work-around ist, die kaputten User noch einmal mit einer anderen Userid anzulegen. Nicht gerade elegant. Ich wäre daher für jegliche sonstige Idee dankbar.