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:

RechtSymbolOktalwert
Lesenr4
Schreibenw2
Ausführenx1

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: ~/.bashrc oder ~/.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

WertDateienVerzeichnisseVerwendung
022644755Standard auf den meisten Systemen
027640750Eingeschränkter Zugriff für andere
077600700Nur Besitzer hat Zugriff
002664775Voller 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.