Univention Bugzilla – Bug 27549
sambaHomePath wird nicht immer gesetzt → kein Homeverzeichnis
Last modified: 2013-02-15 17:51:12 CET
sambaHomePath wird vom Importskript nicht gesetzt, wenn der jeweilige DCSlave/SchulDC noch nicht gejoined wurde, weil am Rechnerobjekt kein Service "Windows Home Server", "Samba 4" oder "Samba" vorhanden ist. Das führt dazu, dass die Homeverzeichnisse bei Samba4-Benutzern beim Login nicht verknüpft werden. Möglicher Fix: Beim Anlegen der OU mit und ohne Angabe des DC-Namens gleich am Rechnerobjekt des Schul-DCs den Service "Windows Home Server" setzen. Es wird ohnehin derzeit empfohlen, den SchulDC als alleinigen Fileserver einzusetzen, wenn man Module wie Materialverteilung/Proxy/... nutzen will.
Das Problem tritt auch auf, wenn ein physikalischer SchulDC mehrere OUs hostet. In den "Zweit-OUs" ist dann kein gejointes SchulDC-Objekt vorhanden. Hinzu kommt, dass an den Benutzern der Zweit-OUs der Rechnername der Erst-OU in sambaHomePath verwendet werden muss.
(In reply to comment #1) > Das Problem tritt auch auf, wenn ein physikalischer SchulDC mehrere OUs hostet. > In den "Zweit-OUs" ist dann kein gejointes SchulDC-Objekt vorhanden. Hinzu > kommt, dass an den Benutzern der Zweit-OUs der Rechnername der Erst-OU in > sambaHomePath verwendet werden muss. Wir sollten an dem OU-Objekt hinterlegen können, welcher Server für den sambaHomePath verwendet werden soll. Vorschlag für die Auswertungsreihenfolge: - ucsschool/import/set/sambahome - Attribut am OU-Objekt - Suche nach den Services "Windows Home Server", "Samba 4" und "Samba 3"
*** Bug 27410 has been marked as a duplicate of this bug. ***
> *** Bug 27410 has been marked as a duplicate of this bug. *** Es sollte bei der Umsetzung auch der Single-Server-Modus auf dem Master beachtet werden. Das Master-Rechnerobjekt liegt i.d.R. ebenfalls nicht unterhalb einer OU.
(In reply to comment #2) > Wir sollten an dem OU-Objekt hinterlegen können, welcher Server für den > sambaHomePath verwendet werden soll. An dem OU-Objekt sollte dafür ein Extended Attribute für die Pflege dieses Attributs angehängt werden, welches alle DC-Slaves und den Master der Domäne zur Auswahl bereitstellt (ggf. sogar alle DCs und Memberserver?). Auf jeden Fall sollte dies nicht auf einen bestimmten Dienst ("Samba 4"/"Samba 3") eingeschränkt werden, damit auch ungejointe Slaves ausgewählt werden können. Wann wird welcher Wert eingetragen? Bei einem Single-Server-System wird immer automatisch der Master an der OU als Fileserver für sambaHomePath hinterlegt. Bei einem Multi-Server-Szenario wird der Default-DC hinterlegt, falls beim create_ou bzw. im entsprechenden UMC-Wizard kein expliziter DC-Name angegeben wird. Ist ein DC-Name angegeben worden, wird dierse hinterlegt. Sollte an einer OU bereits ein Wert gesetzt sein, bleibt dieser unverändert und kann nur durch den UDM modifiziert werden. Beim Update UCS@school 3.0 nach 3.1 sollte automatisch das Feld an der OU gesetzt werden, damit hier keine manuellen Anpassungen notwendig sind. Vorschlag für die automatische Bestimmung: - Falls ucsschool/import/set/sambahome gesetzt, wird dieses verwendet. - Master wird verwendet, falls SingleServer-Umgebung erkannt wurde. - Suche nach DCs in der Zugriffsgruppe der jeweiligen OU - falls in der Gruppe DCs enthalten sind, wird an den DC-Objekten nach den Services "Windows Home Server", "Samba 4" und "Samba 3" (in dieser Reihenfolge) gesucht. Bei einem Treffer, wird dieser als Fileserver gesetzt. (Sollte der der aktuellen Funktion des Importskriptes entsprechen und auch mit mehreren OU pro physikalischem Server funktionieren). - Anderenfalls wird eine Fehlermeldung ausgegeben/im Log gespeichert.
*** Bug 30148 has been marked as a duplicate of this bug. ***
Implementierung für UCS@school 3.1: 1) Das UCS@school-LDAP-Schema wurde um das LDAP-Attribut "ucsschoolHomeShareFileServer" erweitert. 2) Für das neue LDAP-Attribut "ucsschoolHomeShareFileServer" sowie für das bereits vorhandene Attribut "ucsschoolClassShareFileServer" werden jetzt via Joinskript Extended Attributes am OU-Objekt erstellt. Dafür wird vom UCS@school-Schemapaket jetzt auch eine neue UDM-Syntax "UCSSchool_Server_DN" mitgeliefert, die alle Serverobjekte (DCs und Memberserver) mit FQDN anzeigt und deren DN speichert. Die gesuchten Serverobjekte werden nicht eingeschränkt, d.h. es werden alle Serverobjekte der gesamten Domäne angezeigt (notwendig für Multi-OU-DCs). 3) Während eines create_ou Aufrufes wird jetzt per Default der SchulDC als Fileserver für Klassen- und Benutzer-Home-Shares eingetragen. Sollte während Aufrufs mit --sharefileserver ein anderer Server angegeben werden, wird dieser verwendet. Nachträgliche Änderungen sind derzeit nur über die Extended Attributes an der OU möglich. 4) Beim Anlegen neuer Benutzer über import_users wurde die Bestimmung des sambaHomePath angepasst (first match wins): - falls ucsschool/import/set/sambahome gesetzt ist, wird dieser Wert verwendet - falls ucsschool/singlemaster=true, wird der DC-Master als Fileserver verwendet - es wird an der OU nach "ucsschoolHomeShareFileServer" gesucht und der gesetzte Wert verwendet. Trifft keiner dieser Punkte zu, wird kein sambaHomePath gesetzt. 5) ucs-school-update-ou-fileservers wird in /usr/share/ucs-school-import/scripts abgelegt. Es wird während des Updates auf UCS 3.1 vom UCS@school-Component postup.sh aufgerufen, um an allen OUs die beiden Fileserver zu setzen. Dabei wird die alte Auswertungsmethode verwendet und in der OU nach einem Server mit einem der folgenden Dienste gesucht (Prio absteigend; first server wins): - Windows Home Server - Samba 4 - Samba 3 Falls das Skript während des Updates nicht automatisch aufgerufen werden soll, kann VOR dem Update die UCR-Variable update31/ucsschool/ou_fileserver/update=no gesetzt werden. Das Skript gibt auf StdOut alle Änderungen aus. > Vorschlag für die automatische Bestimmung: > - Falls ucsschool/import/set/sambahome gesetzt, wird dieses verwendet. > - Master wird verwendet, falls SingleServer-Umgebung erkannt wurde. > - Suche nach DCs in der Zugriffsgruppe der jeweiligen OU > - falls in der Gruppe DCs enthalten sind, wird an den DC-Objekten nach den > Services "Windows Home Server", "Samba 4" und "Samba 3" (in dieser > Reihenfolge) gesucht. Bei einem Treffer, wird dieser als Fileserver > gesetzt. > (Sollte der der aktuellen Funktion des Importskriptes entsprechen und auch > mit mehreren OU pro physikalischem Server funktionieren). > - Anderenfalls wird eine Fehlermeldung ausgegeben/im Log gespeichert. Die Suche in den Zugriffsgruppen der OU wurde bewusst nicht umgesetzt, da dies vom bisherigen Verhalten des Import-Skriptes abweicht. Das Aktualisierungsskript sollte zum gleichen Ergebnis kommen, wie das Importskript (import_users). Im Changelog wird darauf hingewiesen, dass speziell bei Multi-OU-DCs die OUs noch einmal überprüft werden sollten. Die Doku wurde erweitert.
> 5) ucs-school-update-ou-fileservers wird in > /usr/share/ucs-school-import/scripts abgelegt. > Es wird während des Updates auf UCS 3.1 vom UCS@school-Component > postup.sh aufgerufen, um an allen OUs die beiden Fileserver zu setzen. → das Skript wird nicht im postup.sh der Component sondern im postinst von ucs-school-import aufgerufen.
Bisher sind nur kleinere Fehler aufgefallen: * ucs-school-singlemaster: create_ou --sharefileserver=none -> falsche DN an der OU eingetragen: root@master50:~# ucr search --brief ldap/hostdn ldap/hostdn: cn=master50,cn=dc,cn=computers,dc=school31i1,dc=qa root@master50:~# univention-ldapsearch -xLLL \ ou=28g01 ucsschoolHomeShareFileServer dn: ou=28G01,dc=school31i1,dc=qa ucsschoolHomeShareFileServer: cn=master50,cn=dc,cn=server,cn=computers,ou=28G01,dc=school31i1,dc=qa * Generell werden DNs nicht validiert: root@master50:~# udm container/ou modify \ --dn ou=28G01,dc=school31i1,dc=qa \ --set ucsschoolHomeShareFileServer=cn=master50,cn=invalid Object modified: ou=28G01,dc=school31i1,dc=qa * Variablenbeschreibung sollte z.B. per Beispiel klarmachen, was zu setzen ist: ** ucr set ucsschool/import/set/sambahome=foo1 -> sambaHomePath: foo1\user2 ** ucr set ucsschool/import/set/sambahome=//member/home -> sambaHomePath: //member/home\user2 ** ucr search ucsschool/import/set/sambahome Windows home path to set for each user on _creation_. If unset, the LDAP will be searched for computer with the service "Windows Home Server"
(In reply to comment #9) > Bisher sind nur kleinere Fehler aufgefallen: > > * ucs-school-singlemaster: create_ou --sharefileserver=none > -> falsche DN an der OU eingetragen: Beim create_ou wird jetzt auf einen syntaktisch gültigen Hostnamen geprüft und auf das Vorhandensein dieses Hostnamens im LDAP. Ist das nicht erfüllt, bricht create_ou ab. > root@master50:~# ucr search --brief ldap/hostdn > ldap/hostdn: cn=master50,cn=dc,cn=computers,dc=school31i1,dc=qa > root@master50:~# univention-ldapsearch -xLLL \ > ou=28g01 ucsschoolHomeShareFileServer > dn: ou=28G01,dc=school31i1,dc=qa > ucsschoolHomeShareFileServer: > cn=master50,cn=dc,cn=server,cn=computers,ou=28G01,dc=school31i1,dc=qa Das sollte damit gefixt sein. Der Fallback wurde ebenfalls korrigiert. > * Generell werden DNs nicht validiert: > root@master50:~# udm container/ou modify \ > --dn ou=28G01,dc=school31i1,dc=qa \ > --set ucsschoolHomeShareFileServer=cn=master50,cn=invalid > Object modified: ou=28G01,dc=school31i1,dc=qa # udm container/ou modify --dn ou=351,dc=nstx,dc=local \ --set ucsschoolHomeShareFileServer=master50 Invalid syntax: Server for Windows home directories: Not a valid LDAP DN # Ich denke, das kann erstmal so bleiben, zumal der Benutzer in der UMC ein DropDown mit möglichen Rechnern angezeigt bekommt und dort keine Falscheingabe tätigen kann. > * Variablenbeschreibung sollte z.B. per Beispiel klarmachen, was zu setzen ist: > ** ucr set ucsschool/import/set/sambahome=foo1 -> sambaHomePath: foo1\user2 > ** ucr set ucsschool/import/set/sambahome=//member/home > -> sambaHomePath: //member/home\user2 > ** ucr search ucsschool/import/set/sambahome > Windows home path to set for each user on _creation_. If unset, the LDAP will > be searched for computer with the service "Windows Home Server" Fixed. ucs-school-import (9.0.6-1) unstable; urgency=low
Beschreibung ist noch nicht korrekt, das Beispiel ist irreführend: root@master50:~# ucr search sambahome ucsschool/import/set/sambahome: \\servername\path Windows home path to set for each user on _creation_. If unset, the master will be used as file server in single-master environments. Otherwise the file server specified at corresponding OU object will be used (Example: \\servername\path liefert: sambaHomePath: \\servername\path\user2
> ucsschool/import/set/sambahome: \\servername\path In ucsschool/import/set/sambahome ist jetzt minimal nur noch der Servername anzugegeben. Fehlende Backslashes werden automatisch hinzugefügt. "servername" → "\\servername\<username>" "\\servername" → "\\servername\<username>" "\servername\" → "\\servername\<username>" Neue Beschreibung: Description[en]=The given server is used for defining the Windows home path during user creation. If unset, the master will be used as file server in single-master environments. Otherwise the file server specified at corresponding OU object will be used (Example: "dc123-01" results in home path "\\dc123-01\<username>" ; Default: not defined) ucs-school-import (9.0.6-2) unstable; urgency=low
Verified: * Während eines create_ou Aufrufes wird jetzt per Default der SchulDC als Fileserver für Klassen- und Benutzer-Home-Shares eingetragen. OK * Sollte während Aufrufs mit --sharefileserver ein anderer Server angegeben werden, wird dieser verwendet. OK * Nachträgliche Änderungen sind derzeit nur über die Extended Attributes an der OU möglich. OK * Beim Anlegen neuer Benutzer über import_users wurde die Bestimmung des sambaHomePath angepasst (first match wins). OK * falls ucsschool/import/set/sambahome gesetzt ist, wird dieser Wert verwendet. OK * falls ucsschool/singlemaster=true, wird der DC-Master als Fileserver verwendet. OK * es wird an der OU nach "ucsschoolHomeShareFileServer" gesucht und der gesetzte Wert verwendet. OK * ucs-school-update-ou-fileservers wird in /usr/share/ucs-school-import/scripts abgelegt. Es wird während des Updates auf UCS 3.1 vom UCS@school-Component postup.sh aufgerufen, um an allen OUs die beiden Fileserver zu setzen. OK * Dabei wird die alte Auswertungsmethode verwendet und in der OU nach einem Server mit einem der folgenden Dienste gesucht [...] Verified: hostet ein Schul-DC zwei OUs, so schlägt die automatische Bestimmung für mindestens eine der OUs fehl. Definiert man z.B. einen Memberserver unter der OU als "Windows Home Server" und führt das Skript erneut aus, dann werden die Exended Attributes korrekt gesetzt: ====================================================================== root@master70:~# /usr/share/ucs-school-import/scripts/ucs-school-update-ou-fileservers --auto-detect OU: ou=28G01,dc=school30u1,dc=qa ==> ucsschoolClassShareFileServer has already been set ==> ucsschoolHomeShareFileServer has already been set OU: ou=28G02,dc=school30u1,dc=qa ERROR: cannot determine fileserver for class shares ERROR: cannot determine fileserver for user home shares OU: ou=28G03,dc=school30u1,dc=qa ==> ucsschoolClassShareFileServer has already been set ==> ucsschoolHomeShareFileServer has already been set root@master70:~# udm computers/memberserver modify \ --dn "cn=member74,cn=memberserver,cn=computers,dc=school30u1,dc=qa" \ --set service="Windows Home Server" root@master70:~# udm computers/memberserver move \ --dn "cn=member74,cn=memberserver,cn=computers,dc=school30u1,dc=qa" \ --position "cn=computers,ou=28G02,dc=school30u1,dc=qa" root@master70:~# /usr/share/ucs-school-import/scripts/ucs-school-update-ou-fileservers --auto-detect OU: ou=28G01,dc=school30u1,dc=qa ==> ucsschoolClassShareFileServer has already been set ==> ucsschoolHomeShareFileServer has already been set OU: ou=28G02,dc=school30u1,dc=qa ==> ucsschoolClassShareFileServer has already been set ==> ucsschoolHomeShareFileServer = cn=member74,cn=computers,ou=28G02,dc=school30u1,dc=qa OU: ou=28G03,dc=school30u1,dc=qa ==> ucsschoolClassShareFileServer has already been set ==> ucsschoolHomeShareFileServer has already been set ====================================================================== * Falls das Skript während des Updates nicht automatisch aufgerufen werden soll, kann VOR dem Update die UCR-Variable update31/ucsschool/ou_fileserver/update=no gesetzt werden. OK * Das Skript gibt auf StdOut alle Änderungen aus. OK * Im Changelog wird darauf hingewiesen, dass speziell bei Multi-OU-DCs die OUs noch einmal überprüft werden sollten. OK * Comment 10 und Comment 12: Verified. * Im changelog wurde noch der Hinweis aufgenommen, dass man im Zweifelsfall nach dem Update "/usr/share/ucs-school-import/scripts/ucs-school-update-ou-fileservers --auto-detect" auf dem Master einfach nochmal ausführen kann.
UCS@school 3.1 has been released: http://forum.univention.de/viewtopic.php?f=26&t=2364 If this error occurs again, please use "Clone This Bug".