Ich habe eine Samba-Freigabe, die viele Ordner wie diesen enthält:
share
- folderA
- folderB
- folderC
- folderD
Es gibt ungefähr 20 Benutzer, die auf diese Freigaben zugreifen. Jeder Benutzer kann individuell auf einige der Verzeichnisse zugreifen, z. B. kann Ben auf Ordner A und Ordner C zugreifen, nicht jedoch auf Ordner B und Ordner D. Jenny kann auf Ordner B und Ordner C zugreifen und so weiter.
Ich möchte nicht, dass die Benutzer jeden Ordner mounten, den sie benötigen. Ich möchte, dass sie den Ordner "share" mounten, der alle Unterordner enthält. Der Zugriff wird dann durch Festlegen der Linux-Berechtigungen eingeschränkt.
Ich habe für jedes Unterverzeichnis eine Gruppe erstellt und die Benutzer zu diesen Gruppen hinzugefügt. Die Zugriffskontrolle funktioniert perfekt für vorhandene Dateien. Wenn ein Benutzer eine Datei in einem Unterverzeichnis erstellt, wird dies jedem anderen Benutzer verweigert, der über die Berechtigung zum Lesen / Schreiben in diesem Verzeichnis verfügt. Um dies zu lösen, habe ich mit der Samba-Maskierung herumgespielt, kann sie aber nicht zum Laufen bringen.
Mein Samba-Conf sieht folgendermaßen aus:
guest ok = no
[global]
workgroup = WORKGROUP
security = user
encrypt passwords = yes
[Share]
path = /var/samba
valid users = @everybody
read only = no
writeable = yes
[folderA]
path = /var/samba/folderA
valid users = @users_folderA
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderA
[folderB]
path = /var/samba/folderB
valid users = @users_folderB
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderB
[folderC]
path = /var/samba/folderC
valid users = @users_folderC
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderC
[folderD]
path = /var/samba/folderD
valid users = @users_folderD
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderD
Offensichtlich ist jeder Benutzer in der Gruppe jeder, sodass er die Freigabe mit den Unterverzeichnissen bereitstellen kann. Der Zugriff für jedes Unterverzeichnis funktioniert einwandfrei. Aber wenn Ben eine Datei in Ordner C erstellt, erhält die Datei die Dateiberechtigungen -rwxr - r--, aber es sollte -rwxrwx --- sein
Ich denke, die Freigaben für die einzelnen Ordner funktionieren überhaupt nicht, weil ich versucht habe, beschreibbar = nein und schreibgeschützt = ja zu setzen, um es zu testen. Smbd und nmbd neu gestartet und die Netzwerkfreigabe erneut bereitgestellt (in Windows 10). Die Benutzer konnten Dateien erstellen und ihre eigenen ändern.
Dies läuft auf einem Himbeer-Pi mit Himbeer. Die Festplatte mit den Dateien wird als ext4 formatiert und über fstab gemountet.
force create mode = 770
Anweisung imfolderC
Abschnitt Ihrer Konfiguration.Antworten:
Versuchen Sie diese Konfiguration (für Freigabeabschnitte):
Vergessen Sie nicht, die Konfiguration zu überprüfen und Samba neu zu starten:
Berechtigungen festlegen:
Auf diese Weise ist kein direkter Zugriff auf interne Ordner zulässig. Darüber hinaus sind sie überhaupt nicht sichtbar und können nur über den übergeordneten Ordner aufgerufen werden.
quelle