Hallo Liste. Kann mir jemand bitte folgendes Erklären: Es heißt in der smb.conf: create mask (S) When a file is created, the necessary permissions are calculated according to the mapping from DOS modes to UNIX permissions, and the resulting UNIX mode is then bit-wise 'AND'ed with this parameter. This parameter may be thought of as a bit-wise MASK for the UNIX modes of a file. Any bit not set here will be removed from the modes set on a file when it is created. Jetzt setze ich create mask = 0770, und lege eine Datei via Samba an. Die hat aber jetzt nur 0760. Wo bleibt mein fehlendes Bit hängen? Liegt das am Mapping DOS => Unix, und wenn ja, wo kann ich das modifizieren? Danke+Gruß. -- Andre Tann
Hallo, * On Thu, Sep 15, 2005 at 01:35 PM (+0200), Andre Tann wrote:
Kann mir jemand bitte folgendes Erklären:
Es heißt in der smb.conf:
create mask (S) When a file is created, the necessary permissions are calculated according to the mapping from DOS modes to UNIX permissions, and the resulting UNIX mode is then bit-wise 'AND'ed with this parameter. This parameter may be thought of as a bit-wise MASK for the UNIX modes of a file. Any bit not set here will be removed from the modes set on a file when it is created.
Jetzt setze ich create mask = 0770, und lege eine Datei via Samba an. Die hat aber jetzt nur 0760. Wo bleibt mein fehlendes Bit hängen? Liegt das am Mapping DOS => Unix, und wenn ja, wo kann ich das modifizieren?
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. Wie dem auch sei - der Parameter "create mask" kann nur Rechte weg- nehmen. Dir wird vermutl. der Parameter "force create mode" helfen, da dieser per OR-Verknüpfung draufgerechnet wird. Wenn Du also den "force create mode" auch auf "0770" setzt, dann sollte das das Gewünschte leisten. Für Verzeichnisse gibt's dann analoge Parameter - diese hier gelten nämlich IIRC nur für Dateien. Gruß, Steffen
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.
Dir wird vermutl. der Parameter "force create mode" helfen, da dieser per OR-Verknüpfung draufgerechnet wird. Wenn Du also den "force create mode" auch auf "0770" setzt, dann sollte das das Gewünschte leisten.
In der Tat, damit kann ich mein Problem lösen. Ich würde es aber trotzdem gern genauer verstehen, daher obige Frage. Gruß! -- Andre Tann
* 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
participants (2)
-
Andre Tann
-
Steffen Moser