- Registriert
- 21.11.06
- Beiträge
- 3.725
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!
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!