bitlvl
DE

umask-Rechner

Eine umask entfernt Rechte-Bits von neuen Dateien. Tippen Sie eine ein, um das Ergebnis zu sehen, oder kreuzen Sie die Rechte an, die neue Dateien und Verzeichnisse haben sollen.

Entfernte Bits
r
w
x
Besitzer
Gruppe
Andere

Die Ergebnisse und Meldungen dieses Tools werden auf Englisch angezeigt.

Wie umask funktioniert

Wenn ein Programm eine Datei erstellt, fordert es einen Modus an, fast immer 666 (rw-rw-rw-) für Dateien und 777 für Verzeichnisse. Der Kernel löscht dann jedes Bit, das in der umask des Prozesses gesetzt ist. Mit der üblichen 022 werden die Schreib-Bits für Gruppe und Andere entfernt: Dateien werden 644, Verzeichnisse 755. Mit 077 geht alles für Gruppe und Andere weg: 600 und 700. Die Maske kann Rechte nur entfernen, nie hinzufügen; eine Datei erhält durch die umask nie Ausführen, weil 666 es nie hatte.

Die Arithmetik ist mode & ~umask, ein bitweises UND mit der invertierten Maske, keine Subtraktion, sodass umask 027 auf 666 640 ergibt, nicht 639.

Gängige Werte

umaskDateienVerzeichnisseVerwendung
022644755Standard auf den meisten Distributionen; Andere können lesen.
002664775Debian/Ubuntu für Benutzer mit privater Gruppe; Gruppenmitglieder können schreiben.
077600700Standardmäßig privat: Server, Home-Verzeichnisse mit Geheimnissen.
027640750Gruppe kann lesen, Andere nichts; übliche Härtungsbasis (CIS).

Wo sie gesetzt wird

  • Shell: umask zeigt sie, umask 027 setzt sie für die Sitzung; in ~/.profile oder /etc/profile eintragen. umask -S zeigt sie symbolisch.
  • Login: /etc/login.defs (UMASK) und pam_umask setzen den Wert, bevor die Shell startet; /etc/profile auf Debian leitet ihn davon ab, ob der Benutzer eine private Gruppe hat.
  • systemd-Dienste: UMask=0077 im Abschnitt [Service]; Dienste lesen keine Shell-Profile.
  • cron: Jobs laufen mit 022, unabhängig von den Shell-Einstellungen des Benutzers; im Skript setzen.
  • Docker: Der Standard des Containers ist 022; im Entrypoint oder mit umask im Befehl ändern.

Fragen

Warum haben meine neuen Dateien 644, wenn ich 664 will?

Ihre umask ist 022. Setzen Sie umask 002 (und stellen Sie sicher, dass die Gruppe des Verzeichnisses die gewünschte ist, mit dem setgid-Bit auf dem Verzeichnis, damit neue Dateien sie erben).

Beeinflusst umask chmod?

Nein. chmod setzt exakte Bits. umask gilt nur, wenn eine Datei ohne expliziten Modus erstellt wird, was fast immer der Fall ist.

Warum bekommt das Verzeichnis Ausführen, die Datei aber nicht?

Verzeichnisse werden vor der Maske mit 777 erstellt, Dateien mit 666. Ausführen auf einem Verzeichnis heißt „darf es betreten“; Dateien brauchen explizit chmod +x.

Ist eine vierstellige umask anders?

Eine führende 0 (0022) ist nur Oktalschreibweise. Die erste Ziffer würde setuid/setgid/sticky maskieren, was erstellende Prozesse nie anfordern, sie hat also praktisch keine Wirkung.