7.6. Was ist die umask? Wie kann ich sie festlegen?
7.6.1
Die umask legt fest, welche Rechte eine neu angelegte Datei bekommt
oder, besser gesagt, nicht bekommt.
Man kann sich die aktuelle umask in numerischer und in "Textform"
anzeigen lassen:
user@host:~ $ umask
0027
user@host:~ $ umask -S
u=rwx,g=rx,o=
Die Zahlenfolge der umask erklärt sich wie folgt:
0 0 2 7
| | | '--> Rechte für Andere (o, others)
| | '--> Rechte für die Gruppe (g, group)
| '--> Rechte für den Dateieigentümer (u, user)
'--> Spezialrechte (SUID, SGID, sticky) - bei umask immer 0
Die Zahl für Eigentümer, Gruppe und Andere errechnet sich aus der
Summe von:
- 1 - Ausführrecht (x)
- 2 - Schreibrecht (w)
- 4 - Leserecht (r)
Die umask 0027 bedeutet also:
- alle Rechte für den Dateieigentümer
- keine Schreibrechte (aber Lese- und Ausführrechte) für die Gruppe
- Keine Rechte für Andere
Festlegen kann man die umask mit dem Befehl umask 0027,
wobei der Zahlenwert natürlich variieren kann. Eine so festgelegte umask
gilt immer für die aktuelle Shell sowie alle Kindprozesse. Setzt man die
umask beispielsweise in ~/.profile, gilt sie für die gesamte
Dauer des Logins und für alle in dieser Zeit gestarteten Programme. Legt
man die umask in einem xterm fest, gilt sie nur für die in diesem xterm
gestartete Programme.
Will man die umask nur für ein bestimmtes Verzeichnis festlegen (z. B.
Gruppenschreibrecht für gemeinsam genutzte Dateien), kommt man mit dem
umask-Befehl recht schnell ins Schwitzen, da er immer für alle
Verzeichnisse gleichzeitig gilt.
Die Lösung dieses Problems ist das Setzen einer default ACL.
Der folgende Befehlsaufruf legt z. B. fest, dass in
/home/austausch/ alle Dateien mit allen Rechten (einschließlich
Schreibrecht) für die Gruppe erzeugt werden:
setfacl -d -m mask:007 /home/austausch/
Sinnvollerweise sollte man für das betroffene Verzeichnis auch das
SGID-Bit setzen und per chgrp die richtige Gruppe festlegen:
chgrp das_team /home/austausch/
chmod g+s /home/austausch/
Falls /home/austausch/ bereits Unterverzeichnisse enthält,
muss man natürlich deren Rechte ebenfalls anpassen. Tipp: alle genannten
Befehle kennen die Option -R
Ab KDE 3.5 kann man ACLs auch über den Dialog "Dateieigenschaften"
festlegen.
Falls man auf das fragliche Verzeichnis ausschließlich per Samba
zugreift, kann man auch in der Konfiguration des Samba-Servers eine
passende directory mask und create mask für das
betroffene Share festlegen (Vorsicht, Samba verwendet nicht die
invertierte Rechtemaske von umask!). Auch die Option
force group ist in diesem Zusammenhang empfehlenswert. Weitere
Informationen zur Samba-Konfiguration finden sich unter den genannten
Stichworten in man smb.conf
(cboltz)
|