Univention Bugzilla – Bug 29065
Zusätzliche default fACL für Authenticated Users unterläuft Samba4 NTACLs
Last modified: 2013-04-25 13:08:08 CEST
Die im univention-samba4 Joinscript gesetzte zusätzliche default fACL für "Authenticated Users" unterläuft die Samba4 NTACLs bei Verzeichnissen (nicht bei Dateien): Wenn man samba/debug/level=10 setzt und z.B. per samba-tool ntacl eine NTACL für eine Verzeichnis liest (oder schreibt), sieht man die Meldung: ============================================================================ get_nt_acl_internal: blob hash does not match for file /var/lib/samba/sysvol/arucs31i5.qa/Policies/{6AC1786C-016F-11D2-945F-00C04FB984F9}/USER - returning file system SD mapping. ============================================================================ Irgendwas an der Auswertung der zusätzlich vererbten default ACL scheint hier nicht so sauber zu sein wie eigentlich gewünscht, jedenfalls passt die Quersumme der aus dem Dateisystem gelesenen (und in source3/smbd/posix_acl.c aufbereiteten) ACL nicht zu der, die beim Schreiben der NTACL&fACL notiert wurde. Das ist aktuell das Verhalten von RC2, noch ohne den Patch für Bug 28737. Was das für weitere Effekte hat, ist noch unklar. +++ This bug was initially created as a clone of Bug #28737 +++ Das Skript /usr/share/univention-samba4/scripts/set_sysvol_ntacl.py schreibt NTACLs, die das Tool "samba-tool ntacl sysvolcheck" nicht als korrekt ansieht.
Dass die zusätzliche default fACL die Verhaltensänderung gegenüber den Samba4 Standardverhalten bewirkt, kann man sehen, indem man z.B. ucr set samba4/sysvol/sync/cron="# */5 * * * *" setfacl -b -R /var/lib/samba/sysvol aufruft und danach einmal eine NTACL auf eine Verzeichnis schreibt und wieder ausliest. Dann wird auch für Verzeichnisse die ausgelesene NTACL verwendet und die Meldung lautet: ========================================================= get_nt_acl_internal: blob hash matches for file ... =========================================================
Mit gesetzter default fACL für Authenticated Users liefert samba-tool ntacl sysvolcheck eine Fehlermeldung: ERROR(<class 'samba.provision.ProvisioningError'>): uncaught exception - ProvisioningError: VFS ACL on sysvol directory /var/lib/samba/sysvol/arucs31i5.qa O:LAG:BAD:(A;OICI;0x001200a9;;;AU)(A;;0x001f01ff;;;LA)(A;;0x001f01ff;;;SY)(A;;0x001200a9;;;SO)(A;;0x001f01ff;;;BA)(A;;0x001f01ff;;;BA)(A;;0x001f01ff;;;LA)(A;OICIIO;0x001f01ff;;;CO)(A;OICIIO;0x001f01ff;;;CG) does not match expected value O:LAG:BAD:P(A;OICI;0x001f01ff;;;BA)(A;OICI;0x001200a9;;;SO)(A;OICI;0x001f01ff;;;SY)(A;OICI;0x001200a9;;;AU) from provision
Ein Test mit "samba-tool ntacl sysvolreset" zeigt, dass z.B. # file: /var/lib/samba/sysvol/arucs31i6.qa/Policies/{6AC1786C-016F-11D2-945F-00C04FB984F9}/USER # O:DAG:DUD:P(A;OICI;0x001f01ff;;;DA)(A;OICI;0x001f01ff;;;EA)(A;OICIIO;0x001f01ff;;;CO)(A;OICI;0x001f01ff;;;DA)(A;OICI;0x001f01ff;;;SY)(A;OICI;0x001200a9;;;AU)(A;OICI;0x001200a9;;;ED)S:AI(OU;CIIDSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIDSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD) geschrieben wird. Ohne die zusätzliche default fACL für Authenticated Users liest "samba-tool ntacl get --as-sddl" dann auch genau diese NTACL wieder aus. Mit der zusätzlichen default fACL für Authenticated Users liest man hingegen eine andere NTACL aus: O:DAG:DUD:(A;;0x001f01ff;;;DA)(A;;0x001200a9;;;ED)(A;;0x001f01ff;;;EA)(A;;0x001f01ff;;;DA)(A;;0x001200a9;;;AU)(A;;0x001f01ff;;;SY)(A;;0x001f01ff;;;DA)(A;OICIIO;0x001f01ff;;;CO)(A;OICIIO;WO;;;CG)(A;OICIIO;0x001200a9;;;S-1-22-2-5020) Dies geschieht, weil Samba hier den eigentlichen, in die xattr gespeicherte NTACL verwirft und statt dessen eine aus den Dateisystem-fACLs ableitet: Weil die Quersumme über die Dateisystem-fACL nicht "mehr" stimmt, nimmt Samba an, dass die Dateisystem-fACL in der zwischenzeit geändert wurde und bevorzugt sie vor der NTACL.
Es wäre hier zu prüfen, ob der zusätzliche default fACL-Eintrag für "Authenticated Users" mit RC2 oder neuer (und dem Patch für Bug 28737) noch notwendig ist.
Das Hash-Problem bei Verzeichnissen scheint upstream auch aufgefallen und gelöst worden zu sein: https://bugzilla.samba.org/show_bug.cgi?id=9381
Not reproducable in UCS 3.1-1 (Samba 4.0.3).