Der Befehl umask steuert die Standard-Berechtigungen für neu erstellte Dateien und Verzeichnisse. Er definiert, welche Berechtigungsbits beim Erstellen automatisch entfernt werden.
Berechtigungen im Überblick
Jede Datei hat einen Besitzer, eine Gruppe und Zugriffsrechte für drei Benutzerklassen:
- Besitzer (user) - Der Eigentümer der Datei
- Gruppe (group) - Mitglieder der zugewiesenen Gruppe
- Andere (others) - Alle anderen Benutzer
Für jede Klasse gibt es drei Berechtigungstypen:
| Recht | Symbol | Oktalwert |
|---|---|---|
| Lesen | r | 4 |
| Schreiben | w | 2 |
| Ausführen | x | 1 |
Mit dem Befehl ls -l zeigst du die Berechtigungen einer Datei an:
ls -l datei.txt
Die Ausgabe zeigt die Berechtigungen im Format rwxr-xr-x:
-rwxr-xr-x 1 benutzer gruppe 4096 Jan 16 10:00 datei.txt
Die ersten drei Zeichen nach dem Dateityp stehen für den Besitzer (rwx = 7), die nächsten drei für die Gruppe (r-x = 5) und die letzten drei für andere (r-x = 5). Diese Datei hat also die Berechtigung 755.
So funktioniert umask
Das System verwendet standardmäßig 666 für neue Dateien und 777 für neue Verzeichnisse. Der umask-Wert wird von diesen Standardwerten abgezogen.
Um den aktuellen umask-Wert anzuzeigen:
umask
Typische Ausgabe:
0022
Der Wert 022 bedeutet:
- Dateien:
666 - 022 = 644(rw-r–r–) - Verzeichnisse:
777 - 022 = 755(rwxr-xr-x)
Mit der Option -S zeigst du die Maske in symbolischer Schreibweise:
umask -S
Ausgabe:
u=rwx,g=rx,o=rx
umask-Wert setzen
Temporär setzen
Der folgende Befehl setzt umask für die aktuelle Shell-Sitzung:
umask 027
Mit diesem Wert erhalten neue Dateien die Berechtigung 640 und neue Verzeichnisse 750. Das bedeutet: Gruppe kann lesen, andere haben keinen Zugriff.
Dauerhaft setzen
Für dauerhafte Änderungen fügst du den umask-Befehl in eine Konfigurationsdatei ein:
- Systemweit:
/etc/profile - Pro Benutzer:
~/.bashrcoder~/.zshrc
echo "umask 027" >> ~/.bashrc
Aktiviere die Änderung mit:
source ~/.bashrc
Praktische Beispiele
Restriktive Berechtigungen setzen
Für maximale Privatsphäre verwendest du umask 077. Nur der Besitzer kann dann auf neue Dateien zugreifen:
umask 077
touch geheim.txt
ls -l geheim.txt
Ausgabe:
-rw------- 1 benutzer gruppe 0 Jan 16 10:00 geheim.txt
Gruppenfreundliche Berechtigungen
Mit umask 002 ermöglichst du der Gruppe vollen Zugriff:
umask 002
mkdir projekt
ls -ld projekt
Ausgabe:
drwxrwxr-x 2 benutzer gruppe 4096 Jan 16 10:00 projekt
Symbolische Schreibweise verwenden
Statt Oktalwerten kannst du auch die symbolische Notation nutzen:
umask u=rwx,g=rx,o=
Das entspricht umask 027.
Häufige umask-Werte
| Wert | Dateien | Verzeichnisse | Verwendung |
|---|---|---|---|
| 022 | 644 | 755 | Standard auf den meisten Systemen |
| 027 | 640 | 750 | Eingeschränkter Zugriff für andere |
| 077 | 600 | 700 | Nur Besitzer hat Zugriff |
| 002 | 664 | 775 | Voller Gruppenzugriff |
Sicherheitshinweis
Vermeide umask 000 - damit kann jeder Benutzer auf alle neu erstellten Dateien zugreifen. Auf Mehrbenutzersystemen sollte der Wert mindestens 022 betragen.
Zusammenfassung
Der Befehl umask bestimmt die Standard-Berechtigungen für neue Dateien und Verzeichnisse. Mit umask zeigst du den aktuellen Wert an, mit umask WERT setzt du einen neuen. Für dauerhafte Änderungen trägst du den Befehl in ~/.bashrc oder /etc/profile ein.