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.
Berechtigungen · Lektion 4
Umask
Erfahre, wie die umask eines Prozesses die für neu erstellte Dateien und Verzeichnisse angeforderten Berechtigungsbits begrenzt.
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
umaskan oder lege sie damit fest.Entferne maskierte Bits aus dem von einer Anwendung angeforderten Modus.
Unterscheide die häufige Dateianforderung
0666von der Verzeichnisanforderung0777.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