umask
Rechte & Benutzer
Was ist umask?
Wenn du eine neue Datei oder ein neues Verzeichnis anlegst, bekommt sie automatisch bestimmte Rechte. Welche das sind, steuert die umask („user file creation mask“). Sie legt nicht fest, welche Rechte gesetzt werden, sondern welche entfernt (maskiert) werden. Die umask ist also eine Art Filter.
Die Berechnung
Das System geht von Basisrechten aus: 666 (rw-rw-rw-) für Dateien und 777 (rwxrwxrwx) für Verzeichnisse. Davon werden die Bits der umask abgezogen. Bei der typischen umask 022 ergibt sich:
Datei: 666 - 022 = 644 (rw-r--r--) Verzeichnis: 777 - 022 = 755 (rwxr-xr-x)
Neue Dateien sind also für alle lesbar, aber nur für den Besitzer beschreibbar. Beachte: Dateien erhalten nie automatisch das Ausführungsrecht x – das musst du später bewusst mit chmod setzen.
umask anzeigen und setzen
$ umask 0022 $ umask -S u=rwx,g=rx,o=rx $ umask 027 # strenger: andere bekommen gar nichts $ touch test.txt $ ls -l test.txt -rw-r----- 1 anna anna 0 Jun 20 12:00 test.txt
Mit -S zeigt umask die symbolische Form. Eine umask von 027 ergibt Dateien 640 und Verzeichnisse 750 – andere Nutzer haben dann keinerlei Zugriff.
Gängige Werte
| umask | Datei | Verzeichnis | Charakter |
|---|---|---|---|
022 | 644 | 755 | Standard, weltlesbar |
027 | 640 | 750 | Gruppe lesen, andere nichts |
077 | 600 | 700 | nur Besitzer (sehr privat) |
Welche Rechte bekommt eine neue Datei bei umask 022?
Dauerhaft setzen & Sicherheit
Eine im Terminal gesetzte umask gilt nur für die aktuelle Sitzung. Dauerhaft trägst du sie in ~/.bashrc (persönlich) oder /etc/profile (systemweit) ein. Auf Mehrbenutzersystemen mit sensiblen Daten ist 027 oder 077 sicherer als der Standard 022, weil neue Dateien nicht versehentlich für alle lesbar sind. Wichtig: Die umask kann Rechte nur wegnehmen, nie hinzufügen – das Ausführungsbit bleibt bei Dateien stets außen vor.