Ich habe einen Ubuntu-Server, der einige Ordner mit Samba teilt. Wenn ein Client einen neuen Ordner oder eine neue Datei erstellt, werden die Berechtigungen nicht gemäß den Einstellungen in smb.conf festgelegt.
Meine aktuellen Einstellungen für eine bestimmte Freigabe:
[share]
path = /mnt/share
browsable = yes
guest ok = no
writable = yes
read only = no
create mask = 0774
directory mask = 0774
write list = netuser
Wenn ein Samba-Client (eine Windows 7-Box) das Konto "netuser" verwendet, um eine Datei oder ein Verzeichnis zu erstellen, werden die Berechtigungen
drwxr-sr-- 2 netuser sambashare 4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare 0 2012-01-22 21:07 New Text Document.txt
Das übergeordnete Verzeichnis hat das Flag "Gruppen-ID festlegen" und damit den Eigentümer der Sambashare-Gruppe. Die Idee ist, dass sowohl Samba-Benutzer als auch Server-Benutzer zur Sambashare-Gruppe gehören und daher in der Lage sein sollen, Dateien und Verzeichnisse zu bearbeiten, zu löschen und zu erstellen. Da für erstellte Ordner jedoch das Schreibflag für Gruppen nicht festgelegt ist, können Serverbenutzer keine neuen Dateien oder Ordner in diesen Ordnern ohne sudo erstellen.
Ich habe das Hinzufügen und Entfernen der Verzeichnismaske, den Verzeichnismodus erzwingen, den Verzeichnissicherheitsmodus und den Verzeichnissicherheitsmodus erzwingen getestet, aber das Verhalten bleibt weiterhin bestehen. Neu erstellte Dateien und Ordner erhalten nicht die Berechtigung 774, sondern 764 bzw. 754.
Was vermisse ich? Warum setzt Samba nicht die richtigen Berechtigungen?
Nach vielen Versuchen und Fehlern ist dies der richtige Code, um das Samba-Verzeichnis mithilfe von SGID- und Unix-Gruppen freizugeben. Wenn der Benutzer anonym eine Verbindung herstellt, erhält er R / O. Wenn er sich anmeldet und Mitglied einer zugewiesenen Gruppe ist, erhält er R / W.
Ich habe die Gruppe "admin" als primäre Gruppe für Benutzer mit Schreibrechten festgelegt. Alle anderen Benutzer erhalten Leserechte.
Ich zwinge Benutzer zu niemandem, damit sich verschiedene Personen, die an denselben Dateien arbeiten, nicht gegenseitig stören.
Ich habe chmod 2755 für das freigegebene Verzeichnis festgelegt, sodass es erstellte Verzeichnisse mit derselben Gruppe "admin" erbt.
Überprüfen, ob alles in Ordnung ist:
Relevanter Teil von /etc/samba/smb.conf:
Dieser Beitrag brachte mich auf die richtige Spur, aber testparm enthüllte 4 falsche Anweisungen, daher teile ich hier die feste Konfiguration. In Samba funktioniert es umso besser, je weniger Direktiven Sie angeben.
quelle
Ich hatte das gleiche Problem, aber alles wie Maske Richtlinien nicht für mich (Samba 4.3.11) arbeiten:
Die einzige Option, die funktionierte, war im Abschnitt [global] oder share:
Ändern Sie einfach alle Ordner- und Dateiberechtigungen entsprechend Ihren Anforderungen, damit zukünftige Ordner und Dateien dieselben Berechtigungen übernehmen.
quelle
4.8.11
auffreebsd
auch :)Bei der Verbindung von anderen Unix- / Linux- / OSX- / MacOS-Geräten tritt ein sehr ähnliches Problem auf: Alle Einstellungen werden ignoriert, es sei denn, Sie geben sie an
Und verbinden mit
smb://<serverhost>
statt mitcifs://<serverhost>
.quelle
quelle