Was ist umask?

umask (user file-creation mode mask) ist eine Linux- und Unix-Einstellung, die die Standardberechtigungen für neu erstellte Dateien und Verzeichnisse steuert. Anstatt Berechtigungen direkt festzulegen, definiert umask, welche Berechtigungsbits bei der Erstellung einer neuen Datei oder eines neuen Verzeichnisses von den Systemstandards entfernt werden sollen.

Das System beginnt mit einer Basisberechtigung von 666 (Lese- und Schreibzugriff für alle) für Dateien und 777 (Lese-, Schreib- und Ausführungszugriff für alle) für Verzeichnisse. Die umask wird dann bitweise von diesen Standardwerten subtrahiert, indem eine logische AND-NOT-Operation verwendet wird, was die endgültigen Berechtigungen ergibt. Beispielsweise führt eine umask von 022 zu Berechtigungen von 644 für neue Dateien und 755 für neue Verzeichnisse.

Jede umask-Ziffer entspricht einer Berechtigungsklasse: die erste Ziffer betrifft den Besitzer, die zweite die Gruppe und die dritte andere. Eine Ziffer von 0 bedeutet, dass keine Berechtigungen maskiert werden, während 7 alle Berechtigungen für diese Klasse entfernt.

Werkzeugbeschreibung

Der Linux umask-Rechner konvertiert einen umask-Wert und eine Basisberechtigung in die resultierenden effektiven Berechtigungen in oktaler und symbolischer Notation. Er generiert auch den exakten umask-Shell-Befehl und hilft Systemadministratoren, Entwicklern und DevOps-Ingenieuren, die Auswirkungen einer umask in der Vorschau anzuzeigen, bevor sie auf eine Shell, ein Skript oder eine Systemkonfiguration angewendet wird.

Beispiele

Umask Basis Resultierende Oktalzahl Symbolisch
022 666 644 rw-r--r--
022 777 755 rwxr-xr-x
077 666 600 rw-------
027 777 750 rwxr-x---
002 666 664 rw-rw-r--

Funktionen

  • Berechnet resultierende oktal- und symbolische Berechtigungen aus einer beliebigen umask
  • Unterstützt sowohl 3-stellige als auch 4-stellige umask-Werte (mit führendem Sticky/Setuid-Bit)
  • Häufige umask-Voreinstellungen (022, 027, 077, 002, 007, 000)
  • Basisberechtigung-Voreinstellungen für Dateien (666) und Verzeichnisse (777)
  • Generiert den einsatzbereiten umask-Shell-Befehl

Anwendungsfälle

  • Server-Härtung: Zeigen Sie eine strengere umask wie 077 in der Vorschau an, bevor Sie sie zu /etc/profile oder der Shell-Konfiguration eines Benutzers hinzufügen, um sicherzustellen, dass neue Dateien privat sind.
  • Gemeinsame Entwicklungsumgebungen: Überprüfen Sie, dass 002 oder 007 gruppenschreibbare Dateien für kollaborative Projektverzeichnisse erzeugt.
  • Bereitstellungsskripte: Bestätigen Sie, dass die in CI/CD-Pipelines oder Container-Einstiegspunkten verwendete umask die erwarteten Dateiberechtigungen für Anwendungsprotokolle und hochgeladene Assets erzeugt.

Funktionsweise

Die endgültige Berechtigung wird für jede Klasse (Besitzer, Gruppe, andere) mit der folgenden Formel berechnet:

final = base AND (NOT umask)

Jede Oktalziffer wird unabhängig verarbeitet. Für eine umask-Ziffer von 2 (binär 010) und eine Basisziffer von 6 (binär 110) ist das Ergebnis 110 AND NOT 010 = 100, was 4 (nur Lesezugriff) entspricht. Die führende Ziffer einer 4-stelligen umask steuert spezielle Bits (setuid, setgid, sticky) und wird in der standardmäßigen Berechtigungsberechnung ignoriert.

Tipps

  • Verwenden Sie 666 als Basis, um Berechtigungen für neue Dateien anzuzeigen, und 777 für neue Verzeichnisse.
  • Eine umask von 000 bedeutet, dass keine Berechtigungen entfernt werden — nützlich nur in streng kontrollierten, isolierten Umgebungen.
  • Um die umask dauerhaft zu machen, fügen Sie den generierten Befehl zu ~/.bashrc, ~/.profile oder /etc/profile hinzu, je nachdem, welchen Umfang Sie wünschen.