* On Fri, Sep 16, 2005 at 03:58 PM (+0200), Andre Tann wrote:
Steffen Moser, Freitag, 16. September 2005 09:45:
Ich hatte es so in Erinnerung, dass hier die unter Unix gesetzte "umask" mitspielt und als Default genommen wird. Der Parameter "create mask" (ist identisch mit "create mode") kann dann wegen der AND-Verknüpfung allen- falls davon dann noch Rechte wegnehmen, aber keine zugeben. Evtl. spielt aber hier nicht nur oder (möglicherweise bei aktuellen Samba-Versionen) nicht mehr die "umask" mit rein, sondern ein Mapping der DOS-Attribute auf Unix-Permissions.
Und nach welchen Regeln findet dieses Mapping statt? Und wo kann man die beeinflussen? Ich hab schon ein paar ergoogelte Seiten abgegrast, aber so richtig eingehen tut keine von denen, die ich gefunden habe.
Ich habe gerade mal das Kapitel 5.3 des "Using Samba"-Buches über- flogen: http://www.oreilly.de/catalog/samba/chapter/book/ch05_03.html Wenn nich das richtig einschätze, dann ist "create mask" die für Samba gültige "umask". Standardmäßig (wenn sie nicht explizit in der "smb.conf" für ein Share gesetzt wird) hat sie den Wert "0744". Mit anderen Worten: Keine Datei kann "mehr Rechte" haben als der "create mask"-Wert. Angenommen, Du setzt jetzt die "create mask" auf "0770", dann werden maximal "0770" gesetzt. Was wird aber tatsächlich gesetzt? Die "x"-Bits für "user", "group" und "others" werden zum Kodieren der DOS-Attribute verwendet. Das heißt, wenn ich das richtig sehe, dann wird folgendes gemacht: - 0777 wird als Grundlage genommen (also "alles erlaubt") - Falls "Archive" nicht gesetzt ist, wird aus der "0777" die "0677". - Falls "System" nicht gesetzt wird, wird aus der "0777" die "0767". - Falls "Hidden" nicht gesetzt wird, wird aus der "0777" die "0776". - Das Ganze wird mit der "create mask" (Default: "0744") mit AND-verknüpft. Es sei Beispielsweise die "create mask" auf "0770" gesetzt. Du legst dann eine Datei an, die "Archive" gesetzt hat, aber "System" und "Hidden" nicht. Dann kriegt sie "0760". Ohne Archive würde sie "0660" kriegen. Nebenbei: Das Mapping von "System" und "Hidden" erfolgt per Default nicht, sondern muss explizit aktiviert werden. Nur "Archive" wird standardmäßig gemappt. - Das Ergebnis von oben wird durch "force create mode" nochmals OR-verknüpft. Analog kann man's für Verzeichnisse durchspielen (keine Ahnung, wie genau dort die Mappings umgesetzt werden, denn ein Samba-User will ja ein Verzeichnis noch betreten können, auch wenn es kein DOS-Ar- chive-Bit besitzt - vermutlich werden sie gar nicht gemappt). Mit anderen Worten: Bei Dateien scheint "create mask" gesetzt zu werden abzüglich der "x"-Bits für nicht gesetzte DOS-Attribute. Will man eine besimmte Rechtekonfiguration erzwingen, dann setzt man am besten "create mask" und "force create mode" auf den selben Wert. "create mask" verhindert, dass mehr Rechte gesetzt werden und "force create mode" verhindert, dass weniger Rechte gesetzt wer- den. Gruß, Steffen