Univention Bugzilla – Bug 24163
NTACL support für SYSVOL Replikation in univention-samba4
Last modified: 2011-12-13 15:49:17 CET
Die aktuell in unviention-samba4 per rsync implementierte sysvol-Replikation erhält die NTACLs nicht: Wenn ein Replikations-Slave sein sysvol zu seinem "upstream" Replikationspartner schickt, dann schreibt rsync die xattr auf dem upstream-Server nicht, weil es dort keinen root-Zugriff hat. Leider scheint die tar-Version in Debian nicht --xattrs zu unterstützen, die RHEL5 unterstützt, das könnte sonst eine einfache Alternative sein. +++ This bug was initially created as a clone of Bug #23359 +++ Das sysvol Share muss zwischen den S4 Systemen synchronisiert werden.
Hier gab es zwei Möglichkeiten: a) dump & restore der xattrs per getfattr/setfattr b) Umstellung des sysvol-sync Skripts von push auf pull bei der Synchronisation Richtumg upstream. Variante a) hat den Nachteil, dass die Posix-ownerships nicht erhalten bleiben, sondern die Dateien dann dem host "gehören", der lexikalisch als letzter synchronisiert wurde. Daher wurde dann doch von Variante a) auf Variante b) umgestellt.
Damit der pull-Verfahren funktioniert, muss die Gruppe 'DC Slave Hosts' Lesezugriff aus alle Dateien unter /var/lib/samba/sysvol haben. Da das bei MS-clientseitig angepassten GPOs teilweise durch spezielle fACLs ausgeschlossen wird, setzen wir jetzt im samba4-Joinskript vor dem provision/join eine default fACL auf das sysvol-Basisverzeichnis, die sich dann auf neu angelegte Dateien/Verzeichnisse auswirkt.
Die Dateien werden derzeit nicht synchronisiert, da die Gruppenberechtigung (default ACLs) nicht für die Dateien gesetzt wird: root@master61:~# getfacl /var/lib/samba/sysvol/deadlock6.local/Policies/\{31B2F340-016D-11D2-945F-00C04FB984F9\}/USER/ getfacl: Entferne führende '/' von absoluten Pfadnamen # file: var/lib/samba/sysvol/deadlock6.local/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/USER/ # owner: root # group: adm user::rwx group::r-x group:DC\040Slave\040Hosts:r-x mask::r-x other::r-x default:user::rwx default:group::r-x default:group:DC\040Slave\040Hosts:r-x default:mask::r-x default:other::r-x root@master61:~# getfacl /var/lib/samba/sysvol/deadlock6.local/Policies/\{31B2F340-016D-11D2-945F-00C04FB984F9\}/USER/Registry.pol getfacl: Entferne führende '/' von absoluten Pfadnamen # file: var/lib/samba/sysvol/deadlock6.local/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/USER/Registry.pol # owner: Administrator # group: Domain\040Admins user::rwx user:3000005:r-x user:3000008:rwx user:3000009:r-x group::rwx group:Enterprise\040Admins:rwx mask::rwx other::---
Bei jedem Lauf des sysvol-sync Skripts werden jetzt die fACLs für alle Dateien und Verzeichnisse unter /var/lib/samba/sysvol so gesetzt, dass "DC Salve Hosts" alle Dateien lesen können. Sicherheitshalber werden auch die default ACLs auf den Verzeichnissen im gleichen setfacl Aufruf mit erneuert. Für Testzwecke kann z.B. samba4/sysvol/sync/cron="*/1 * * * *" gesetzt werden.
Funktioniert. Es wurden diverse GPOs getestet, inkl. Rechner und Benutzerkonfigurationen für XP und Win7.
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"