Umask
100%

Berechtigungen · Lektion 4

Umask

Erfahre, wie die umask eines Prozesses die für neu erstellte Dateien und Verzeichnisse angeforderten Berechtigungsbits begrenzt.

Die Dateierstellungsmaske oder umask eines Prozesses verhindert, dass ausgewählte Berechtigungsbits gesetzt werden, wenn dieser Prozess ein Dateisystemobjekt erstellt. Sie ist eine Maske und kein vollständiger Standardmodus: Die Anwendung fordert zuerst einen Modus an, und der Kernel entfernt die von der umask untersagten Bits.

Konzeptionell gilt:

resultierender Modus = angeforderter Modus AND NOT umask

Zugriffssteuerungslisten und das Verhalten der Anwendung können weitere Einzelheiten hinzufügen. Prüfe daher das Ergebnis, wenn genaue Berechtigungen wichtig sind.

Die Umask anzeigen und festlegen

Führe umask ohne Operanden aus, um die Maske der aktuellen Shell anzuzeigen, häufig in oktaler Form:

$ umask
0022

Lege sie für die aktuelle Shell und die anschließend von dieser Shell gestarteten Prozesse fest:

$ umask 027

Jede oktale Position steht für Eigentümer, Gruppe und andere. Ein Maskenbit entfernt die entsprechende angeforderte Berechtigung: 2 maskiert Schreiben, 4 maskiert Lesen und 1 maskiert Ausführen.

Was ändert umask 027 in der aktuellen Shell?

Modi neuer Dateien und Verzeichnisse berechnen

Viele gewöhnliche Programme fordern für neue reguläre Dateien 0666 an, da es unsicher wäre, neu erstellte Dateien standardmäßig ausführbar zu machen. Für neue Verzeichnisse fordern sie häufig 0777 an, weil dort die Ausführungsberechtigung zum Durchqueren erforderlich ist.

Mit der umask 0022:

reguläre Datei: 0666 maskiert durch 0022 -> 0644 (rw-r--r--)
Verzeichnis:     0777 maskiert durch 0022 -> 0755 (rwxr-xr-x)

Die umask entfernt ausschließlich angeforderte Bits. Sie kann keine Ausführungsberechtigung hinzufügen, wenn eine Anwendung sie nicht angefordert hat. Eine Anwendung kann außerdem einen stärker eingeschränkten Ausgangsmodus anfordern, wodurch ein restriktiveres Ergebnis entsteht.

Welcher Modus entsteht, wenn ein Programm für eine reguläre Datei den Modus 0666 anfordert und die umask 0022 lautet?

Welcher Modus entsteht, wenn ein Programm für ein Verzeichnis 0777 anfordert und die umask 0027 lautet?

Gültigkeitsbereich und Dauerhaftigkeit

Die Änderung der umask in einer Shell verändert weder deren Elternprozess noch unabhängige Sitzungen. Der Wert gilt für zukünftige Erstellungen durch diese Shell und ihre Nachkommen; bestehende Dateien behalten ihre Modi.

Um einen bevorzugten Wert dauerhaft festzulegen, konfiguriere ihn an der für deine Umgebung geeigneten Stelle für Anmeldung, Shell, PAM, Dienstmanager oder Anwendung. Der richtige Ort variiert, und Dienste können ihre eigene umask festlegen. Gehe nicht davon aus, dass die Bearbeitung einer einzelnen Datei für eine interaktive Shell jeden Prozess auf dem System steuert.

Was geschieht mit einer bestehenden Datei, wenn du eine neue umask festlegst?

Erstelle für praktische Übungen Dateien und Verzeichnisse unter verschiedenen Masken in einer isolierten Umgebung und vergleiche anschließend ihre Modi mit ls -ld. Das Lab Linux-Benutzer, -Gruppen und Dateiberechtigungen bietet eine passende Übungsumgebung.

Lektion abgeschlossen

Sie haben Umask abgeschlossen

Du kannst nun vorhersagen, wie eine umask neu angeforderte Berechtigungen begrenzt.

  • Zeige die Maske der aktuellen Shell mit umask an oder lege sie damit fest.

  • Entferne maskierte Bits aus dem von einer Anwendung angeforderten Modus.

  • Unterscheide die häufige Dateianforderung 0666 von der Verzeichnisanforderung 0777.

  • Behandle Gültigkeitsbereich und Dauerhaftigkeit der umask als prozess- und umgebungsspezifisch.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Berechtigungen