Samba 3/NT4 upgrade nach Samba 4/AD

german

#1

Hallo,

habe einen bestehenden UCS Master NT Domain Controler auf Samba 4/AD Domain Controler upgegradet laut folgende Dokumentation (Scenario 2.):
wiki.univention.de/index.php?tit … to_Samba_4

Ich konnte keinen Fehler bei der installation beobachten, jedoch hab’ nach der Installation folgendes Problem:

Windows 7 Clients die bereits vor dem Upgrade teil der Domäne waren können sich nach dem Upgrade nicht mehr mit dem domänen Account auf dem Rechner einloggen. Folgendes wird vom Client gemeldet:

The trust relationship between this workstation and the primary domain failed

Nimmt man aber den Client aus der Domäne und nachhinnein wieder joint, funktioniert der login des domänen Account, jedoch wird auf dem Rechner ein neues Profil erstellt was dazu führt das sämtliche Profileinstellungen verloren gehen.

Hierbei handelt sich reine um locale domänen Profile, serverseitige gespeichrte Profile werden nicht bentutzt.

Der UCS ist in der Version:
echo $(ucr get version/version)-$(ucr get version/patchlevel)-Errata$(ucr get version/erratalevel)
3.2-5-Errata309

Weiteres ist mir aufgefallen, melde ich mich local an und versuche den Home Verzeichnis eines bestehenden Users zu Verbinden, werde ich aufgefordert mich zu authentifizeiren, was auch mit dem Domain\Username funktioniert, bekomme aber keinen Zugang (access denied) solang das /home/Username Verzeichnis auf dem UCS die Berechtingen 711 hat (was auch der Stand vor dem Upgrade war). Zugriff auf dem Home Laufwerk funktioniert erst dann mit 744 z.B., daher die Gruppe muss auch lesen können. Dieses verhalten tritt nicht auf bei User die nach den Upgrade angelegt werden und sich am re-jointen Rechner anmelden. Der Home wird weiterhin mit 7.

Sind bei Clients vor dem Upgrade auf AD bestimmte Vorkehrungen zu treffen oder habe ich was übersehen?

… ich wollte noch hier im Thread noch das actualize.log (100kb) hochladen… funktioniert irgendwie nicht ???
Welche weitere logfiles sind noch vom nutzen und werden für die Analyse benötigt.

Gruß
Niko


#2

Moin,

das klingt in Summe nicht schön. Anscheinend hatten die Clients vorher eine andere Domänen-SID als die Server sie inzwischen verwenden, daher die neuen Profile. Das können Sie verifizieren:

[ol][li]Zuerst mal die SID eines Computers herausfinden, der noch nicht re-joint wurde (bei dem man sich also momentan wohl nicht mit Domänenaccounts anmelden kann). Dort einmal als lokaler Admin anmelden, das SysInternals-Tool PsGetSid herunterladen und dann folgendes ausführen: »psgetsid %COMPUTERNAME%«. Das ist die SID des Computer-Accounts, und die SID der Domäne selber ist der komplette vordere Teil bis auf den letzten Ziffernblock.[/li]
[li]Nun serverseitig die SID herausfinden. Dazu auf dem DC Master anmelden und folgendes ausführen: »net getdomainsid«. Das ist wirklich die SID der Domäne, die Samba aufspannt.[/li]
[li]Als letzten Wert noch mal die in Samba gespeicherte SID des in 1. benutzten Computers herausfinden. Dafür auf dem DC Master folgendes ausführen: »univention-s4search cn=NameDesComputers objectSid«[/li][/ol]

Pasten Sie diese drei Werte hier.

Die Frage ist, ob wir das wieder hingebogen bekommen, oder ob nicht ein anderer Weg einfacher ist:

[ul][li]Alle Comptuer einmal neu joinen, wie Sie es schon gemacht haben[/li]
[li]Auf allen betroffenen Computern die existierenden Profile für die anscheinend neue Domäne konvertieren. Dafür können Sie das unheimlich hilfreiche Tool User Profile Wizard der Firma ForensIT nutzen. Ist kostenlos.[/li][/ul]

Das mit den Verzeichnisrechten: hier könnte ich mir vorstellen, dass die User-ID-Mappings aus irgend einem Grunde nicht stimmen. Pasten Sie doch mal bitte die verschiedenen Werte für einen Benutzeraccount, im Beispiel hier »mbunkus«:

[ol][li]Die numerische ID des Besitzers von /home/mbunkus: »stat /home/mbunkus«[/li]
[li]Die UID und Samba-SID im OpenLDAP: »univention-ldapsearch uid=mbunkus uidNumber sambaSID«[/li]
[li]Die im Samba-LDAP hinterlegte SID: »univention-s4search objectSid«[/li]
[li]Das in Samba gespeicherte Mapping von SID zu Linux-UID: »ldbsearch -H /var/lib/samba/private/idmap.ldb cn= xidNumber«[/li][/ol]

Wie diese ganzen Werten zusammenhängen:

[ul][li]Die »idmap.ldb« sagt Samba, welche Linux-UID der Prozess nutzen soll, wenn sich ein Windows-Client eine gewisse SID anmeldet.[/li]
[li]Die »sambaSid« aus 2. und die »objectSid« aus 3. müssen identisch sein.[/li]
[li]Zu der »objectSid« aus 3. muss in der »idmap.ldb« ein Eintrag existieren.[/li]
[li]Die »xidNumber« aus der »idmap.ldb« in 4. muss identisch sein mit der »uidNumber« aus 2.[/li]
[li]Die »uidNumber« aus 2. bzw. die »xidNumber« aus 4. muss identisch sein mit der numerischen ID des Verzeichnisbesitzers aus 1.[/li][/ul]

Gruß,
mosu


#3

Hallo Mosu,
vielen Dank für die rasche Antwort. Das mit dem User Profile Wizard hat mal in einem Probelauf recht gut funktioniert. Wollte es aber nicht dabei belassen bis es verstanden habe worann es liegt. Da ich z.Z. auch andere Projekt betreue werde ich erst nächste Woche dazu kommen deine Vorschläge durchzuführen.
Ich melde micht demnächst.

lg
Niko