Kann Samba vollständige Windows-ACLs unterstützen?

12

Ich habe einen Samba 3-Host mit AD-Integration und einem ACL-fähigen Dateisystem eingerichtet. Mit einem Windows-Client kann ich Benutzer- und Gruppenberechtigungen festlegen.

Bisher ordnet Samba nur die rwx-Berechtigungen von POSIX ACL zu, wodurch ich die Berechtigungen "Ändern" oder "Vollzugriff" unter Windows nicht verwenden kann. Ich habe auch ein paar Dinge über die Unterstützung von xattrs und ZFS-ACLs gelesen.

Kann jemand einen Hinweis geben, wie man am besten über POSIX-ACLs hinausgeht, um Windows-ACEs vollständig zu ähneln?

Fabian
quelle

Antworten:

7

So habe ich es immer gemacht, nicht ganz sicher, wo ich das gelesen habe.

Damit die meisten Windows-ACL-Optionen auf Ihren Samba-Freigaben mit AD verbunden sind, müssen Sie sowohl POSIX-ACLs als auch XATTRS aktivieren:

/dev/sda2       /samba              ext3    user_xattr,acl  1   2

Und in Ihrer smb.conf müssen Sie die ID-Zuordnung, Nicht-ACLs und Attributzuordnung wie folgt aktivieren:

idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
idmap backend = idmap_rid:<domain_netbios_name>=16777216-33554431

nt acl support = yes
inherit acls = yes

map acl inherit = yes 
map archive = no
map hidden = no
map read only = no
map system = no
store dos attributes = yes
inherit permissions = yes

Anschließend müssen Sie nur noch den Administrator für die Freigabe definieren und mit diesem Benutzer die Sicherheitseinstellungen von Windows aus bearbeiten.

[public]
path = /share/Public
public = yes
writable = yes
printable = no
admin users = "DOMAIN\user"

Die einzigen Probleme könnten mit vorhandenen ACLs (Sie "verweigern" Root und übertragen den Besitz an Ihren Windows-Benutzer) und nicht zugeordneten Benutzergruppen zusammenhängen.

Um Gruppen manuell zuzuordnen, müssen Sie folgendermaßen vorgehen:

net groupmap delete ntgroup="Domain Admins"
net groupmap delete ntgroup="Domain Users"
net groupmap delete ntgroup="Domain Guests"

net groupmap add ntgroup="Domain Admins" rid=512 unixgroup=root
net groupmap add ntgroup="Domain Users" rid=513 unixgroup=users 
net groupmap add ntgroup="Domain Guests" rid=514 unixgroup=nobody 

für eingebaute Sicherheitsgruppen.

Und dann für alle Ihre Gruppen:

groupadd mygroup
net groupmap delete ntgroup="mygroup"   
net groupmap add ntgroup="DOMAIN\mygroup" rid=1000  unixgroup=mygroup   type=d
Bojan Markovic
quelle
2
Ich würde ändern admin userszu acl group controlund Satz force group = +DOMAIN\Admin-group, auf diese Weise mehr mit Admin - Berechtigungen haben.
Hubert Kario
4

Wenn Sie keine POSIX-ACLs für Dateien benötigen, um tatsächlich verwendet werden zu können (z. B. wenn sich Benutzer nicht lokal bei Ihrem Samba-Controller anmelden können), können Sie mit vfs vollständige NT-ACLs verwenden:

[global]
  store dos attributes = yes
[Teilen]
  vfs objects = acl_xattr
Hubert Kario
quelle
1

Sie müssen zwei Dinge tun.

Zunächst muss Ihr Dateisystem ACLs unterstützen. Hier ist ein Beispiel für eine Zeile in einer fstab-Datei, die ACL aktiviert. Ihre ist natürlich anders:

/dev/mapper/VolGroup00-SambaVol /samba ext3 defaults,acl 0 0

Sobald Sie dies getan haben (und erneut gemountet oder neu gestartet haben), möchten Sie nt acl in Ihrer smb.conf-Datei aktivieren:

[share1]
   path = /samba/share1
   nt acl support = yes
   writeable = yes

Sobald Sie beides getan und Samba neu gestartet haben, sollten Sie die richtigen ACLs haben.

Patrick Tescher
quelle