Univention Bugzilla – Bug 27457
Samba 4 Update
Last modified: 2017-01-05 06:35:56 CET
Es sollte eine neue Samba 4 Version integriert werden. Der aktuelle Samba 4 Release Plan: Beta 2 19 June Beta 3 3 July Beta 4 17 July (possible RC1 if we are confident) RC1 31 July
Die beta1 wurde vor einigen Tagen auch nach sid hochgeladen und sollte somit in Debian Wheezy erscheinen.
Änderungen aus den Releasenotes von beta2: * Beim Update von alpha15 oder später sollte einmalig samba-tool dbcheck --cross-ncs --fix aufgerufen werden (z.B. im postinst bei noch gestopptem samba). * Das samba3update Kommando heisst jetzt samba-tool domain classicupgrade. Es legt jetzt Benutzer und Gruppen mit zusätzlicher Objektklasse posixAccount an und überträgt uidNumber und gidNumber in das Samba4 Verzeichnis. Das sind dann die rfc2307/SFU-Attribute. Das früher beobachtete Problem, dass die Windows-Tools solche Objekte nicht als reguläre Benutzer akzeptiert haben, soll inzwischen behoben sein (die Reihenfolge der objectClasses spielte dabei eine Rolle). * Über den neuen Parameter 'idmap_ldb:use rfc2307' können dann u.a. uidNumber/gidNumber Attribute bevorzugt gegenüber der idmap.ldb verwendet werden, wenn sie im Samba4-Verzeichnis gefunden werden. Potentiell könnte man dadurch den samba4_idmap Listener streichen, wenn der S4 Connector diese Attribute zusätzlich in das Samba4 Verzeichnis schreibt.
Neue Versionen von tdb, tevent und ldb sind importiert und gebaut. Das samba4 Quellpaket aus ucs3.0-2 wurde per uupdate aus 4.0.0~beta4-1 aktualisiert. Die Univention Patches sind entsprechend angepasst und ein wenig konsolidiert. TODO: * In univention-samba4 müssen die Templates u.a. auf s3fs angepasst werden. Insbesondere muss 11univention-smb-service stark angepasst werden, aktuell startet Samba durch "security = ADS" immer nur als Memberserver und startet daher ldap_server, cldap_server, kdc, dreplsrv und kccsrv nicht (!) * Paket-Abhängigkeiten müssen für Update angepasst werden, z.B. auf libwbclient0 (>=3.6.6-2) * /usr/lib/libwbclient.so.0: no version information available (required by /usr/lib/samba/liblibsmb.so) * Paket-Konflikte gegen Samba3-Pakete müssen geprüft werden. * Falls sich dabei die Semantik von samba4/service/smb und samba4/service/nmb ändert (smb/nmb/s4), muss das dokumentiert werden. * RC1 import
Basisfunktionalität von beta4 war nach Neuinstallation und Update gegeben. Beta5 ist seit heute released, benötigt aber auch ldb 1.1.9, die es bisher noch nicht als tar-Ball gibt. Patches ließen sich sonst mit geringen Anpassungen nach beta5 übernehmen. Das univention-samba4 Paket ist jetzt so angepasst, dass es bei Update die UCR-Variable samba4/servece/smb von "smbd" auf "s3fs" ändert, falls noch der alte Default aktiv ist. Der neue Default ist "s3fs". Eine entsprechende Sektion wurde im UCR-Template hinzugefügt. Zusätzlich musste im Paket univention-bind der Library-Name des dlz-Plugins im Template named.conf.samba4 angepasst werden. univention-samba4.postinst macht jetzt beim Update auf ucs3.1-0 ein Backup von /var/lib/samba/private nach /var/backups/samba.$timestamp und startet dann samba-tool dbcheck im automatischen Modus. TODO: * libwbclient0 aus samba4 (4.0.0~beta4) wird von ein paar Binaries im samba4-Paket benötigt. Diese Library und libsmbclient wurden bisher von samba (2:3.5.11) Paket als eigenständige Pakete geliefert, auf die z.B. kdebase-runtime eine versionierte Dependency hat. Da "Provides" nicht versionierte Dependencies erfüllen, könnte es sein, dass auch das samba4-Quellpaket Binärpakete mit Epoche 2 bereitstellen muss, u.a. libwbclient0 und libsmbclient (=2:4.0.0~beta4). Noch ist unklar, wie das upstream gehandhabt werden wird. * Es muss getestet/überlegt werden, ob die DNS-Daten bei Updates in die neue Partition migriert werden müssen/sollen. * Umstellung auf samba-tool domain classicupgrade
* Ok, TODO Punkt 1 von Comment 4 (bzw. 2,3 und 4 aus Comment 3) sollte jetzt erledigt sein. Ich habe die libwbclient0 aus samba 3.6.6 von Version 0.8 auf den Stand von samba4 beta4 gebracht (Version 0.9) und baue die Library jetzt mit versioned symbols, sodass samba4 sie ebenfalls verwenden kann. * Installation und Update der Debian-Pakete funktionierte damit jetzt. * Nach Instalation eines DC-Masters funktioniert Samba4+S4-Connector OK. Nach Update kann das dlz_bind9-Modul die DNS-Zone nicht mehr laden, das ist TODO Punkt 2 aus Comment 4: > * Es muss getestet/überlegt werden, ob die DNS-Daten bei Updates in die > neue Partition migriert werden müssen/sollen. Jul 3 17:42:58 master10 named[19652]: Loading 'samba4.zone' using driver dlopen Jul 3 17:42:58 master10 named[19652]: samba_dlz: Unable to get basedn for /var/lib/samba/private/dns/sam.ldb - NULL Base DN invalid for a base search Jul 3 17:42:58 master10 named[19652]: dlz_dlopen of 'samba4.zone' failed Weiterer TODO Punkt: * Wenn DNS auf einen upgedateten DC Master funktioniert, muss Slave-Join und Replikation getestet werden.
* OK, Bei Update werden die DNS-Daten jetzt in die neuen Partitionen migriert, sodass DNS jetzt auch direkt nach Update funktioniert. Weiterer TODO Punkt: * Der S4-Connector wird vermutlich nicht die DNS-Objekte unter ihren neuen DNS finden/verwenden, zumal die alten Objekte aus der Domain-Partition aktuell nicht automatisch entfernt werden. # Alter record: DC=master10,DC=arucs3i8.qa,CN=MicrosoftDNS,CN=System,DC=arucs3i8,DC=qa # Neuer record: DC=master10,DC=arucs3i8.qa,CN=MicrosoftDNS,DC=DomainDnsZones,DC=arucs3i8,DC=qa
*** Bug 25487 has been marked as a duplicate of this bug. ***
RC1 ist aktuell für KW36 geplant und sollte auch den blocker Bug https://bugzilla.samba.org/show_bug.cgi?id=8886 fixen.
Auf einem aktuellen UCS 3.1 System: root@master51:~# ucr commit /etc/samba/smb.conf Multifile: /etc/samba/smb.conf File "<stdin>", line 19 debug hirestimestamp = yes ^ SyntaxError: invalid syntax root@master51:~#
(In reply to comment #9) > Auf einem aktuellen UCS 3.1 System: > > root@master51:~# ucr commit /etc/samba/smb.conf > Multifile: /etc/samba/smb.conf > File "<stdin>", line 19 > debug hirestimestamp = yes > ^ > SyntaxError: invalid syntax > root@master51:~# Wurde behoben.
Vermutliuch darf das updatedns Skript zum Anlegen der DomainDnsZones und ForestDomainZones Partitionen nur auf einem (dem ersten upgedateten?) DC aufgerufen werden, sonst sieht man das mehrere GUIDs für diese Partitionen auftreten und der KCC unschöne Fehlermeldungen bei der Berechnung der Replikationstopologie meldet. Muss noch getestet werden, ich habe den Aufruf des Skripts im univention-samba4.postinst erstmal auskommentiert, vermutlich müsste er dann sowieso in das Joinscript (und dort NUR beim Update ausgeführt werden).
Für Bug #24247 habe ich einen allgemeinen Changelog-Eintrag für diesen Bug hinzugefügt, der müsste mit interim-2 noch aktualisiert werden.
In /var/log/univention/join.log: /usr/lib/univention-install/96univention-samba4.inst: Zeile 86: -b: Kommando nicht gefunden. /usr/lib/univention-install/96univention-samba4.inst: Zeile 87: operatingSystem: Kommando nicht gefunden. Ausgelöst durch 96univention-samba4.inst seit univention-samba4=2.0.10-1 bzw. Revision 35165 Der dazugehörige Changelog Eintrag: * fix non-critical traceback due to existing operatingSystem attribute (Bug #27457)
Created attachment 4669 [details] 3.0-2 -> 3.1-0 samba4 updater.log Ich habe gerade ein Update von 3.0-2 auf 3.1-0 gemacht (UCS Master mit samba4 und s4-connector). Nach dem Update läuft samba4 nicht mehr. Es gibt auch ein paar merkwürdige Fehlermeldungen, die ich nicht interpretieren kann. Stopping Samba 4 daemon: samba.^M Setting samba4/service/smb^M File: /etc/samba/base.conf^M Multifile: /etc/samba/smb.conf^M Checking 3410 objects^M Fix isDeleted originating_change_time on 'CN=Deleted Objects,CN=Configuration,DC=i386,DC=de' [YES]^M ERROR: incorrect DN string component for member in object CN=Domain Users,CN=Groups,DC=i386,DC=de - <GUID=e078a4a9-3860-4902-b63f-e55ac61eea88>;CN=Administrator,cn=users,dc=i386,dc=de^M Change DN to <GUID=e078a4a9-3860-4902-b63f-e55ac61eea88>;<SID=S-1-5-21-2677020960-2779081959-2014209857-500>;CN=Administrator,CN=Users,DC=i386,DC=de? [YES]^M Fixed incorrect DN string on attribute member^M Fix isDeleted originating_change_time on 'CN=Deleted Objects,DC=i386,DC=de' [YES]^M Checked 3410 objects (3 errors)^M Setting server/password/change^M und Stopping Samba 4 daemon: samba.^M Administative credentials are needed to join to existing Samba4 domain. Please run:^M univention-run-join-scripts --ask-pass^M to complete the domain join.^M univention-s4-connector (7.0.6-1.260.201208281649) wird eingerichtet ...^M Neue Version der Konfigurationsdatei /etc/univention/connector/s4/mapping wird installiert ...^M
Zu Comment 14: * Die ersten Meldungen kommen vom samba-tool dbcheck aus dem postinst. Der dbcheck ist von upstream für dieses Update empfohlen. * Die zweite Meldung müssen wir noch prüfen, das sollte nicht so sein. Zu Comment 11: * Hinweis von upstream: "You also have to modify the haveMasterNCs on the other DCs, otherwise you won't replicate them after that."
Es gibt aktuell Probleme mit der Samba 4 Version und dem Drucken: - Master mit Samba 4 und Printserver installieren - Windows 7 in die Domäne joinen - Als DOMAIN\Administrator an Windows 7 anmelden - per Explorer mit \\<master\ verbinden - in der Explorer Leite "Remotedrucker anzeigen" anklicken - Rechte Maustaste in den Explorer Hintergrund und Servereigenschaften auswählen → Die Servereigenschaften können nicht angezeigt werden. Überprüfen Sie den Druckernamen ... Aus der Logdatei: [2012/09/26 06:14:34.160304, 5, pid=24974, effective(0, 5000), real(0, 0)] ../lib/util/modules.c:174(do_smb_load_module) Probing module 'spoolss' [2012/09/26 06:14:34.160362, 5, pid=24974, effective(0, 5000), real(0, 0)] ../lib/util/modules.c:188(do_smb_load_module) Probing module 'spoolss': Trying to load from /usr/lib/samba/rpc/spoolss.so [2012/09/26 06:14:34.160566, 5, pid=24974, effective(0, 5000), real(0, 0)] ../lib/util/modules.c:56(load_module) Error loading module '/usr/lib/samba/rpc/spoolss.so': /usr/lib/samba/rpc/spoolss.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
Das scheint Ende August Upstream gefixt worden zu sein, neuer Test mit den folgenden Patches war erfolgreich: bf36462555032a11b9399c0f89527bce63d8c5ca fb917eba47f52241ed2cac1bd3cbd207d9857d98 20cfa38b9deb0e455e112e76c6c7174aca6233a8 461209255d08a19c6e8b038c05251a0e9567298f Für diesen Bug reicht dann einfach der Import von rc1 oder rc2.
RC2 ist jetzt gebaut und ließ sich updaten und neu installieren. TODO: * Client-Operationen wie Durcken müssen noch getestet werden. * Das Attribut haveMasterNCs sollte auf den DCs noch angepasst werden, damit die neuen DNS-Paritionen auch periodisch repliziert werden.
Samba 3 → Samba 4 Inplace Migration hat soweit funktioniert. In der Logdatei ist folgendes aufgefallen: Importing users Adding users to groups Processing section "[netlogon]" Processing section "[sysvol]" set_nt_acl_no_snum: fset_nt_acl returned NT_STATUS_INVALID_OWNER. ERROR(runtime): uncaught exception - (-1073741734, 'NT_STATUS_INVALID_OWNER') File "/usr/lib/python2.6/dist-packages/samba/netcmd/__init__.py", line 168, in _run return self.run(*args, **kwargs) File "/usr/lib/python2.6/dist-packages/samba/netcmd/domain.py", line 1320, in run useeadb=eadb, dns_backend=dns_backend, use_ntvfs=use_ntvfs) File "/usr/lib/python2.6/dist-packages/samba/upgrade.py", line 941, in upgrade_from_samba3 security.dom_sid(result.domainsid), result.names.dnsdomain, result.names.domaindn, result.lp, use_ntvfs) File "/usr/lib/python2.6/dist-packages/samba/provision/__init__.py", line 1462, in setsysvolacl set_gpos_acl(sysvol, dnsdomain, domainsid, domaindn, samdb, lp, use_ntvfs) File "/usr/lib/python2.6/dist-packages/samba/provision/__init__.py", line 1401, in set_gpos_acl str(domainsid), use_ntvfs) File "/usr/lib/python2.6/dist-packages/samba/provision/__init__.py", line 1368, in set_dir_acl setntacl(lp, path, acl, domsid, use_ntvfs=use_ntvfs) File "/usr/lib/python2.6/dist-packages/samba/ntacls.py", line 108, in setntacl smbd.set_nt_acl(file, security.SECINFO_OWNER | security.SECINFO_GROUP | security.SECINFO_DACL | security.SECINFO_SACL, sd)
Comment 19 ist in Bug 28737 abgespalten.
haveMasterNCs sieht ok aus, Replikation der DNS-Partitionen funktioniert ebenfalls. Ist aktuell unerheblich aber für später gut.
DNS Updates von Windows Clients funktionieren nicht mehr. Aus der daemon.log: Oct 16 08:36:27 master591 named[10055]: samba_dlz: starting transaction on zone deadlock59.local Oct 16 08:36:27 master591 named[10055]: client 10.201.59.5#58626: update 'deadlock59.local/IN' denied Oct 16 08:36:27 master591 named[10055]: samba_dlz: cancelling transaction on zone deadlock59.local Scheinbar fehlt die Keytab: root@master591:~# grep keytab /etc/bind/named.conf.samba4 tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab"; root@master591:~# ls -la /var/lib/samba/private/dns.keytab ls: Zugriff auf /var/lib/samba/private/dns.keytab nicht möglich: Datei oder Verzeichnis nicht gefunden root@master591:~# Auf dem Master wurde kein dns-User angelegt: root@master591:~# getent passwd | grep -i dns dns-backup592:x:2010:5001:none:/home/dns-backup592:/bin/bash dns-slave593:x:2011:5001:none:/home/dns-slave593:/bin/bash root@master591:~# Der Aufruf /usr/share/univention-samba4/scripts/create_dns-host_spn.py fehlt auf dem ersten DC im Join Skript.
(In reply to comment #22) > DNS Updates von Windows Clients funktionieren nicht mehr. Aus der daemon.log: > > Oct 16 08:36:27 master591 named[10055]: samba_dlz: starting transaction on zone > deadlock59.local > Oct 16 08:36:27 master591 named[10055]: client 10.201.59.5#58626: update > 'deadlock59.local/IN' denied > Oct 16 08:36:27 master591 named[10055]: samba_dlz: cancelling transaction on > zone deadlock59.local > > Scheinbar fehlt die Keytab: > > root@master591:~# grep keytab /etc/bind/named.conf.samba4 > tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab"; > root@master591:~# ls -la /var/lib/samba/private/dns.keytab > ls: Zugriff auf /var/lib/samba/private/dns.keytab nicht möglich: Datei oder > Verzeichnis nicht gefunden > root@master591:~# > > Auf dem Master wurde kein dns-User angelegt: > root@master591:~# getent passwd | grep -i dns > dns-backup592:x:2010:5001:none:/home/dns-backup592:/bin/bash > dns-slave593:x:2011:5001:none:/home/dns-slave593:/bin/bash > root@master591:~# > > Der Aufruf /usr/share/univention-samba4/scripts/create_dns-host_spn.py fehlt > auf dem ersten DC im Join Skript. Nach dem manuellen Ausführen funktionierten die DNS Updates: → Reopen Alles andere OK: - Umgebung S4 Master, Backup, Slave, Member: OK - Update Master + Backup: OK - Replikation Master 3.1 + Backup 3.0: OK - Join XP: OK - Join Win7: OK - Anmeldung: OK - Passwort ändern: OK - Print XP + 7 (Druckertreiber hinterlegen): OK - Share Freigabe Slave + Member ACL Prüfung: OK - DNS Updates: FAILED - Changelog: OK
Ok, create_dns-host_spn.py wird jetzt auf allen DCs ausgeführt, nicht nur auf den gejointen. Bisher hatte provision den Account angelegt, anscheinend ist das im Zuge der upstream-Umstellung auf den internen DNS-Server entfernt worden.
Der dns-Benutzer wird angelegt und die DNS Registrierung funktioniert.
Doch nochmal reopen. Auf einem UCS 3.1 DC Slave (erstes S4 System in der Domäne) bricht der Join ab: Configure 96univention-samba4.inst Multifile: /etc/samba/smb.conf Setting samba/quota/command Multifile: /etc/samba/smb.conf Stopping Heimdal password server: kpasswdd. Stopping Heimdal KDC: heimdal-kdc. Create samba/autostart Create winbind/autostart Setting kerberos/autostart Multifile: /etc/samba/smb.conf Setting samba4/autostart Multifile: /etc/samba/smb.conf Create samba4/role File: /etc/samba/base.conf Multifile: /etc/samba/smb.conf Create samba4/ldap/base Multifile: /etc/samba/smb.conf Create samba/share/netlogon File: /etc/samba/base.conf Multifile: /etc/samba/smb.conf Stopping Samba 4 daemon: samba. ERROR: Options --binddn and --bindpwd not given for samba3upgrade
Ein set -x im join Skript gibt diese Ausgabe: ++ ldapsearch -x -ZZ -LLL -D cn=slave584,cn=dc,cn=computers,dc=deadlock58,dc=local -y /etc/machine.secret '(&(univentionService=Samba 4)(objectClass=univentionDomainController))' cn + samba4servicedcs= + /etc/init.d/samba4 stop Stopping Samba 4 daemon: samba. + is_ucr_true samba4/provision/primary + local value ++ univention-config-registry get samba4/provision/primary + value= + case "$(echo -n "$value" | tr [:upper:] [:lower:])" in ++ tr '[:upper:]' '[:lower:]' ++ echo -n '' + return 2 + '[' 2 -eq 0 ']' + '[' -z '' ']' + '[' 0 -lt 1 ']' + run_samba_provision + /usr/share/univention-samba4/scripts/setup-s4.sh ERROR: Options --binddn and --bindpwd not given for samba3upgrade + rc=1 + '[' 1 '!=' 0 ']' + exit 1 EXITCODE=1
Das $@ wird nicht übergeben, so funktioniert es: --- /usr/lib/univention-install/96univention-samba4.inst.orig 2012-10-17 07:26:07.068000231 +0200 +++ /usr/lib/univention-install/96univention-samba4.inst 2012-10-17 07:26:22.080000169 +0200 @@ -433,7 +433,7 @@ if [ $? -eq 0 ] || [ -z "$samba4servicedcs" ]; then ## we are the first domainctontroller to provide this service if [ $JS_LAST_EXECUTED_VERSION -lt 1 ]; then - run_samba_provision + run_samba_provision "$@" fi ## Add DNS records, allowing finer control over gc and pdc records than samba_dnsupdate @@ -467,7 +467,7 @@ if [ $JS_LAST_EXECUTED_VERSION -lt 1 ]; then ## special case: provision another instance of Samba 4 ## this is similar to univention-samba-slave-pdc - run_samba_provision + run_samba_provision "$@" ## Add DNS records, allowing finer control over gc and pdc records than samba_dnsupdate /usr/share/univention-samba4/scripts/setup-dns-in-ucsldap.sh "$@" --dc "${SITE_OPTION[@]}"
Bei register_server_ips_with_domain fehlt auch das "$@". Bitte alle neuen Funktionen kurz prüfen.
Alle neuen Funktionen, die mit Bug 26731 eingeführt wurden, sind überprüft und wo notwendig angepasst.
(In reply to comment #30) > Alle neuen Funktionen, die mit Bug 26731 eingeführt wurden, sind überprüft und > wo notwendig angepasst. Das funktioniert jetzt.
Aufgrund von Bug #29529 wurde noch ein Update auf Samba 4 RC6 durchgeführt. Die Patches wurden angepasst und es sind noch neue hinzugekommen. Changelog wurde ergänzt.
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".
*** Bug 24490 has been marked as a duplicate of this bug. ***