Univention Bugzilla – Bug 26508
Squid Benutzer wird in S4 angelegt
Last modified: 2012-06-11 06:29:44 CEST
Der Squid Samba 4 Benutzer http-proxy-$hostname wird scheinbar im S4 LDAP angelegt. Da dieser im Join Skript angelegt wird, kann er auch direkt per UDM angelegt werden. Wenn der Benutzer lokal per S4 LDAP auf einem selektiv replizierten Slave angelegt wird, so können Konflikte beispielsweise im Namen auftreten, die nicht bemerkt werden.
Das Problem war hier, dass an das Samba4-Objekt ein servicePrincipalName-Attribut geschrieben werden muss und das nicht den OpenLDAP-Schemata bzw. im S4 Connector Mapping abgebildet ist. Nach Anlegen des Benutzers per UDM muss man hier dann die Replikation abwarten, analog zu dem Verfahren bei den DNS-Records.
Auf Memberservern wird das Benutzer per UDM angelegt und dann auf die Replikation gewartet, diesen Code kann man also im Wesentlichen einfach für den Fall DC kopieren.
Aktuell bekomme ich auf einem UCS@school Slave mit Samba 4 die folgende Meldung im join.log und der Join bricht ab: Join-Ausgabe: Configure 98univention-samba4-dns.inst done Configure 98univention-squid-samba4.inst failed join-log: ERROR(ldb): Failed to add user 'http-proxy-slave102': - Unwilling to perform (53) ERROR: samAccountName not found for service account http-proxy-slave102
Der Kerberos service account wird jetzt per UDM statt per samba-tool angelegt: ======================================== RUNNING 98univention-squid-samba4.inst Object created: uid=http-proxy-qaslave,cn=users,dc=arschool3i1,dc=qa Added 1 records with 0 failures Modified 1 records with 0 failures EXITCODE=0 ======================================== Changelog nicht notewendig wegen Zwischenversion. Anpassung ist noch nicht nach ucs3.0-2 übernommen, da da noch einige commits vorher ebenfalls noch gemerged werden müssen.
Das funktioniert soweit. Ein Changelog Eintrag ist aber IMHO notwendig, da das eine Verhaltensänderung gegenüber 3.0-1 ist.
Changelogeintrag für UCS 3.0-2 und UCS@School 3.0 ist hinzugefügt: \item The Kerberos service principal for the HTTP proxy is now created via UDM instead of via samba-tool in Samba 4 (\ucsBug{26508}).
OK
98univention-squid-samba4.inst führt zu einem Fehler beim Join auf einem Samba 3 Slave. ************************************************************************** * Join failed! * * Contact your system administrator * ************************************************************************** * Message: FAILED: 98univention-squid-samba4.inst ************************************************************************** join.log Configure 98univention-squid-samba4.inst Object created: uid=http-proxy-slave,cn=users,dc=ee,dc=rr ERROR: No S4 Connector Service found in UDM
Das Joinscript ist so angepasst, dass es zusätzlich zu den Fällen * Samba4-DC * Samba3-Memberserver in Samba4 Domäne auch den Fall * Samba3-System in Samba3 Domäne berücksichtigt, bei dem es einfach mit exit 0 beendet. Weitere fixes: * Der service principal wird jetzt im UDM nur in Samba4 Domänen angelegt. * In reinen Samba3 Domänen beendet sich das Joinscript mit exit 0 * udm create wird jetzt mit --ignore-exists aufgerufen * In Samba4 domänen beendet sich das Joinscript nicht mehr, wenn die keytab für den service Principal schon existiert. Damit tut das Jojnscript auch etwasd, wenn man erneut univention-join startet. * Auf samba4 DCs wird der service principal wird nur zu secret.ldb hinzugefügt, wenn JS_LAST_EXECUTED_VERSION == 0. Dadurch wird ein traceback bei zukünftigen Versionen des Joinscripts vermieden. * Es wird zusätzlich auch auf DCs überprüft, ob die keytab für den service principal existiert. Wenn sie nicht exisitert, wird das Skript zur manuellen Generierung der keytab aufgerufen, das auch auf Memberservern verwendet wird. Dies ist ein Workaround dafür, das samba4 in der Vergangenheit in seltenen Fällen die keytab nicht erzeugt hat. * Auf samba3 Memberservern wird die keytab nur dann angelegt, wenn der samba account für den Service im Samba4 Verzeichnisdienst gefunden wurde. Anpassung ist noch nicht nach ucs3.0-2 übernommen, dafür gibt es jetzt Bug 27278.
Slave Samba 4 - OK Member Samba 3 in Samba 4 Domain - OK In beiden Fällen wurde * der Service principal angelegt * die keytab erzeugt * servicePrincipalName am Samba Objekt gesetzt In einer Samba 3 Umgebung wird das Script nun ohne Fehler beendet. -> univention-check-join-status Warning: 'univention-squid-samba4' is not configured. Error: Not all install files configured: 1 missing ===> Dies wird in 3.0-2 behoben, siehe Bug #27278
UCS@school 3.0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS@school erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"