Berechnung der Samba-Standarddateierstellungsmaske

Berechnung der Samba-Standarddateierstellungsmaske

Hallo, ich habe eine Frage, auf die ich keine relevante Antwort zu finden scheine. Die Situation ist, dass ich einen Samba-Server einrichte und versuche, eine Datei und einen Ordner von einem Windows-Rechner aus zu erstellen. Alles funktioniert wie erwartet, aber es gibt das kleine Problem, dass Samba x Bit aus der Gruppe und andere aus der Datei entfernt. Ein einfacher Beispielcode:

drwx--x--x.   4 root root  4096 Dec 13 20:01 smb
drwxrwx--x. 2 root amikon 4096 Dec 15 22:17 pokus

[pokus]
path = /smb/pokus
public = no
writable = yes
valid users = @amikon

[root@wserver pokus]# ls -l
drwxr-xr-x. 2 vanek amikon 4096 Dec 21 10:14 dir
-rwxr--r--. 1 vanek amikon    0 Dec 21 10:14 file.txt

Aus vielen Experimenten, die ich durchgeführt habe, habe ich verstanden, dass Samba beim Erstellen eines Eintrags (Datei oder Verzeichnis) von Windows aus ein logisches UND aus der Standardmaske und den Rechten der Windows-Maschine ausführt. Dieses Verhalten kann mehr oder weniger beeinflusst werden, indem man die Erstellungsmaske und den erzwungenen Erstellungsmodus verwendet (und den anderen Satz für Verzeichnisse) – funktioniert wie erwartet ohne Probleme.

Ich habe herausgefunden, dass das Problem des fehlenden 0011 unabhängig von der Verwendung der Erstellungsmaske 755 weiterhin besteht – die x-Bits werden trotzdem aus der Datei entfernt. Die einzige Möglichkeit besteht darin, den Erstellungsmodus 755 zu erzwingen. Danach bleiben die Bits erhalten, weil OR sie hinzufügt.

Ich habe andere Optionen zum Erstellen einer Maske getestet und es scheint, dass 0011 jedes Mal aus der Datei entfernt wird. 755, 777, 333 ... es sieht also so aus, als könnte es sich um einen Schutzmechanismus handeln, der x aus der Gruppe und andere entfernt und verhindert, dass Skripts von niemandem außer dem Eigentümer ausgeführt werden????

Meine Frage bezieht sich aber genau auf das obige Beispiel. Warum gibt es d755, aber als Ergebnis -744? Wo genau geschah der magische Verlust von 0011?

Vielen Dank für alle Hinweise.

Antwort1

Der magische Verlust von 0011 entsteht dadurch, dass es sich um das Standardverhalten von Samba handelt.

Auszug aus dem Dokument:

Maske erstellen: Der Standardwert dieses Parameters entfernt die Gruppe und andere Schreib- und Ausführungsbits aus den UNIX-Modi

Standard: Maske erstellen = 0744

Hier ist der Link :http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

Suchen nachcreate mask (S)

Das Samba-Team erklärt in diesem Dokument nicht, warum es sich für die Implementierung dieses Standardverhaltens entschieden hat, aber für mich ist es leicht, sich einen Sicherheitsmechanismus vorzustellen (wie Sie erwähnt haben).

Sie können die inherit permissions = yesDirektive verwenden, damit eine neue Datei die Berechtigungen ihres übergeordneten Ordners erbt, aber das hat keine Auswirkungen auf das x-Bit. In Ihrem Fall wird also Folgendes angezeigt:

-rwxrw-r--. 1 vanek amikon    0 Dec 21 10:14 file.txt

Wie Sie sagten, müssen Sie, um dieses Verhalten zu ändern, Ihre eigene Maske explizit definieren. Der Hauptunterschied zwischen „Erstellen“ und „Erstellen erzwingen“ besteht darin:

  • create maskentzieht Berechtigungen (eine UND-Maske)
  • force create modefügt sie danach hinzu (eine ODER-Maske)

Kann außerdem create masknicht mit x-Bit für Gruppen und andere umgehen.

Um bestimmte Ziele zu erreichen, müssen Sie sich möglicherweise mit beiden Richtlinien befassen.


Probieren wir einige Beispiele:

1) Wenn Sie nur das X-Bit für die Gruppe und andere möchten, müssen Sie kombinieren:

create mask = 0700 #Remove r bit from group and others 
force create mode = 0711 #Add x bit only to group and others

Ergebnis : -rwx--x--x 1 kris kris 0 Dec 21 14:20 file.txt


2) Wenn Sie die r- und x-Bits für die Gruppe und andere möchten, entfernen Sie create maskdie Direktive (da der Standard bereits 0744 ist) und fügen Sie einfach hinzu:

    ;create mask = 0700 #remove r bit from group and others (commented)
    force create mode = 0711 #Add x bit only to group and others

Ergebnis : -rwxr-xr-x 1 kris kris 0 Dec 21 14:17 file.txt


Und so weiter...

Ich hoffe, es hilft Ihnen ein wenig, das Samba-Verhalten zu verstehen.

verwandte Informationen