Bug 27950 - Besitzergruppe vererbt sich nicht bei gesetztem S-Bit
Besitzergruppe vererbt sich nicht bei gesetztem S-Bit
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Samba
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.1
Assigned To: Arvid Requate
Stefan Gohmann
https://bugzilla.samba.org/show_bug.c...
: interim-3
Depends on:
Blocks: 28711
  Show dependency treegraph
 
Reported: 2012-07-17 10:59 CEST by Jan Christoph Ebersbach
Modified: 2012-12-12 21:08 CET (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Christoph Ebersbach univentionstaff 2012-07-17 10:59:34 CEST
Seit dem Umstieg von UCS 2.4 auf 3.0 hat sich das Samba-Verhalten auf Dateifreigaben geändert. Ist an einem Ordner das S-Bit für die Gruppe gesetzt, so vererbte sich die Ordner-Gruppe auf neu angelegte Dateien. Dies ist nun nicht mehr der Fall, stattdessen wird die primäre Gruppe des Benutzers als Besitzer eingetragen. (ACLs werden jedoch weiterhin korrekt vererbt.) Dies verursacht insbesondere bei der intensiven Nutzung von Dateifreigaben in Unternehmen Probleme, da Arbeitsgruppen ggf. nicht mehr zusammen arbeiten können und schleichend die Berechtigungen geändert werden.

Im Folgenden die Schritte, um das Problem nachzustellen:
Erwartetes Ergebnis: die Datei test.txt gehört der Gruppe Domain Users
Ergebnis: die Datei test.txt gehört der Gruppe Domain Admins

$ udm shares/share create --position cn=shares,$(ucr get ldap/base) --set name=test --set host=$(hostname -f) --set path=/test --set sambaWriteable=1 --set sambaNtAclSupport=1 --set sambaInheritAcls=1 --set sambaInheritPermissions=1
$ mkdir /test/test2
$ chgrp 'Domain Users' /test/test2/
$ chmod 2770 /test/test2/
$ cd /home/Administrator
$ smbclient //$(hostname)/test -U Administrator
smb: \> cd test2
smb: \test2\> put .bashrc test.txt

$ stat test.txt
  File: `test.txt'
  Size: 3184            Blocks: 16         IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 2932741     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: ( 2002/Administrator)   Gid: ( 5000/Domain Admins)
Access: 2012-06-20 10:07:02.000000000 +0200
Modify: 2012-06-20 10:07:02.000000000 +0200
Change: 2012-06-20 10:07:02.000000000 +0200

Setzt man die Option sambaInheritOwner werden die Berechtigungen für die Gruppe korrekt vom Ordner übernommen, jedoch fehlt dann die Information welcher Benutzer die Datei angelegt hat.

Das Problem konnte unter UCS 3.0-1 mit Errata-Update 60 und 82 nachgestellt werden.
Comment 1 Jan Christoph Ebersbach univentionstaff 2012-07-17 11:17:58 CEST
Das Problem wurde mit Samba 3 nachgestellt, Samba 4 wurde nicht getestet.
Comment 2 Stefan Gohmann univentionstaff 2012-07-17 11:23:02 CEST
Welche Version von Samba wurde vorher eingesetzt? IMHO haben wir die Samba 3 Version mit UCS 3.0 nicht aktualisiert.
Comment 3 Jan Christoph Ebersbach univentionstaff 2012-07-17 11:52:08 CEST
In der dpkg.log habe ich folgenden Eintrag gefunden:
dpkg.log.2.gz:2012-04-30 21:52:51 upgrade samba-common-bin 2:3.5.11~dfsg-10.522.201202161822 2:3.5.11~dfsg-10.525.201204111145

2:3.5.11~dfsg-10.525.201204111145 ist auch die jetzt eingesetzte Version.
Comment 4 Jan Christoph Ebersbach univentionstaff 2012-07-17 11:53:19 CEST
Siehe auch Ticket #2012051121003432.
Comment 5 Arvid Requate univentionstaff 2012-07-19 11:37:30 CEST
Die upstream Patches für die verdächtigen Upstreambugs 8211, 8644, 8083 und 7996 sind schon in ucs3.0-1 enthalten.

Ich vermute, dass die Verhaltensänderung durch das VFS Modul acl_xattr verusacht wird, das sein UCS 3.0-0 standardmäßig an allen shares aktiviert wird:
http://www.imacat.idv.tw/cgi-bin/man/man2html?vfs_acl_xattr+8

Dazu kommt
http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#INHERITACLS

Zum Test könnte man die share-Option "vfs objects = acl_xattr" temporär manuell entfernen und samba neu starten. Falls das hilft, könnte man versuchen in UCR samba4/ntacl/backend=none setzen und listener und samba neu zu starten.
Comment 6 Arvid Requate univentionstaff 2012-07-19 13:29:10 CEST
Während vfs_acl_xattr anscheinend das Sgid bit an Verzeichnissen ignoriert, berücksitigt es default fACLs für Gruppen korrekt.

Upstream ist jetzt ein Bug dazu angelegt, siehe URL.
Comment 7 Jan Christoph Ebersbach univentionstaff 2012-07-20 14:59:31 CEST
Um das alte Verhalten aus UCS 2.4 wiederherzustellen, ist wie an Comment #5 beschrieben acl_xattr aus allen Share-Dateien unterhalb von /etc/samba/shares.conf.d/ zu entfernen und die UCR-Variable samba4/ntacl/backend=none zu setzen.
Comment 8 Arvid Requate univentionstaff 2012-07-24 11:05:08 CEST
Alternativ können fACLs ohne weitere Änderung mit acl_xattr verwendet werden um default Rechte zu vererben.
Comment 9 Jan Christoph Ebersbach univentionstaff 2012-07-24 11:28:29 CEST
(In reply to comment #8)
> Alternativ können fACLs ohne weitere Änderung mit acl_xattr verwendet werden um
> default Rechte zu vererben.

Nachteil ist, dass die Freigabe in dem Fall nicht per NFS/lokal zugegriffen werden darf, da sich die Rechte dann nicht weiter vererben.
Comment 10 Jan Christoph Ebersbach univentionstaff 2012-07-24 12:08:20 CEST
(In reply to comment #9)
> (In reply to comment #8)
> > Alternativ können fACLs ohne weitere Änderung mit acl_xattr verwendet werden um
> > default Rechte zu vererben.
> 
> Nachteil ist, dass die Freigabe in dem Fall nicht per NFS/lokal zugegriffen
> werden darf, da sich die Rechte dann nicht weiter vererben.

Comment #9 stimmt nicht. Default ACLs werden über acl_xattr korrekt vererbt, normale ACLs jedoch nicht.
Comment 11 Arvid Requate univentionstaff 2012-07-24 15:16:52 CEST
Update-Verhaltensänderung wird durch Bug 28046 adressiert. Dieser Bug adressiert das konkrete Problem von vfs_acl_xattr. Daher nicht mehr critical.
Comment 12 Arvid Requate univentionstaff 2012-09-26 18:16:10 CEST
Mit dem Patch 93_vfs_acl_common_inherit_sgid.patch gegen Samba 3.6.6 in ucs3.1-0 wurde in ersten Tests das SGID-Bit (und die Gruppe) korrekt vererbt, fACLs sahen auch ok aus. Weitere Tests der NTACLs mit Windows-Clients stehen noch aus.
Comment 13 Arvid Requate univentionstaff 2012-10-08 19:14:25 CEST
samba (3.6.8) ist jetzt mit dem Patch gebaut und er scheint zu funktionieren.
Ggf. kommen von upstream noch Vorschläge zur Verbesserung, nochmal zu interim-3 prüfen.
Comment 14 Arvid Requate univentionstaff 2012-11-01 14:23:28 CET
Bisher keine weitere Aktivität upstream; irgendwann wird man dort das Problem auch lösen, dann kann der aktuelle Patch entfallen.
Comment 15 Stefan Gohmann univentionstaff 2012-11-15 06:30:16 CET
OK, funktioniert auch mit Samba 3.

Changelog OK
Comment 16 Stefan Gohmann univentionstaff 2012-12-12 21:08:07 CET
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".