Lesezeit: 5 Minuten
Was ist Umask?
Umask, oder der Benutzer-Dateierstellungsmodus, ist ein Linux-Befehl, der verwendet wird, um die Standard-Dateiberechtigungssätze für neu erstellte Ordner und Dateien zuzuweisen. Der Begriff Maske bezieht sich auf die Gruppierung der Berechtigungsbits, von denen jedes definiert, wie die entsprechende Berechtigung für neu erstellte Dateien gesetzt wird. Die Bits in der Maske können durch Aufrufen des Befehls umask geändert werden.
Wenn wir den Begriff Umask verwenden, beziehen wir uns auf eine der beiden folgenden Bedeutungen:
- Die Maske für den Dateierstellungsmodus des Benutzers, die verwendet wird, um die Standardberechtigungen für neu erstellte Dateien und Verzeichnisse zu konfigurieren
- Der Befehl „umask“, der zum Setzen des umask-Wertes verwendet wird
Wie Sie wahrscheinlich schon wissen, haben alle Unix-basierten Betriebssysteme eine Reihe von Eigenschaften, die dazu dienen, zu definieren, wer bestimmte Dateien oder Verzeichnisse lesen, schreiben oder ausführen darf. Es gibt drei Kategorien, die als „Berechtigungsklassen“ bezeichnet werden und für die diese Berechtigungen gelten.
- Benutzer: Der Benutzer ist standardmäßig der Besitzer oder Ersteller einer Datei oder eines Ordners. Der Besitz der neuen Datei geht standardmäßig auf diesen Benutzer über.
- Gruppe: Eine Gruppe ist eine Gruppe von Benutzern, die dieselbe Zugriffsebene oder dieselben Berechtigungen für eine Datei oder einen Ordner haben.
- Andere: Die Gruppe „Andere“ ist definiert als jeder Benutzer, der nicht in den beiden vorherigen Kategorien enthalten ist. Diese Benutzer haben weder eine Datei oder einen Ordner erstellt, noch gehören sie einer bestimmten Benutzergruppe an. Diese Gruppe umfasst alle Personen, die nicht als Benutzer oder als Teil einer Benutzergruppe gekennzeichnet sind. Wenn wir die Berechtigungsstufe einer Datei oder eines Ordners auf „Andere“ setzen, erhält jeder, der auf die Datei oder den Ordner zugreift, Zugriff auf diese Berechtigungsstufe.
Was passiert also, wenn ein Benutzer neue Dateien und Verzeichnisse erstellt? Das System weist einer Datei automatisch die folgenden Berechtigungen zu, wenn er den touch-Befehl verwendet.
Wenn wir ein Verzeichnis anlegen, weist es ihm den folgenden Berechtigungssatz zu,
Der Umask-Befehlssyntax
Der vollständige Manpage-Eintrag für umask lautet wie folgt.
umask The user file-creation mask is set to mode. If mode begins with a digit, it is interpreted as an octal number; otherwise it is interpreted as a symbolic mode mask similar to that accepted by chmod(1). If mode is omitted, the current value of the mask is printed. The -S option causes the mask to be printed in symbolic form; the default output is an octal number. If the -p option is supplied, and mode is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode was successfully changed or if no mode argument was supplied, and false otherwise.
Um den aktuellen umask-Wert anzuzeigen, verwenden wir den umask-Befehl. Das Ausführen des umask-Befehls allein liefert die Standardberechtigungen, die beim Anlegen einer Datei oder eines Ordners zugewiesen werden.
# umask0022#
Um diese Werte zu ändern, verwenden wir den folgenden Befehl.
# umask #### umask 022
Die ###-Symbole im ersten Befehl werden anstelle einer tatsächlichen Oktalzahl verwendet.
Unten sehen wir die übersetzten Werte des Oktals und wie sie zusammenhängen.
Zahl | Erlaubnis |
---|---|
4 | lesen |
2 | Schreiben |
1 | ausführen |
Lesen | Schreiben | Ausführen | Gesamtwert | Symbolisches Äquivalent: |
---|---|---|---|---|
0 | 0 | 0 | 0 | |
0 | 0 | 1 | 1 | x |
0 | 2 | 0 | 2 | w |
0 | 2 | 1 | 3 | wx |
4 | 0 | 0 | 4 | r |
4 | 0 | 1 | 5 | rx |
4 | 2 | 0 | 6 | rw |
4 | 2 | 1 | 7 | rwx |
So, wenn wir einen ls-Befehl ausführen, werden die oktalen oder symbolischen Berechtigungswerte am Anfang der Ausgabe angezeigt.
# lsdrwxr-xr-x 2 root root 4096 Apr 21 12:54 test/-rw-r--r-- 1 root root 0 Apr 21 12:53 test.txt
Die gesetzten Berechtigungen für das Testverzeichnis sind 755 oder ‚rwx‘ ‚r-x‘ ‚r-x‘.
Die Berechtigungen für die Datei test.txt sind 644 oder ‚rw -‚ ‚r – -‚ ‚r – -‚.
Ein Bindestrich steht für einen Wert von 0.
Symbolische Überschriften
--- no permission--x execute-w- write-wx write and executer-- readr-x read and executerw- read and writerwx read, write and execute
Numerische Überschriften
Wie Umask funktioniert
Der Befehl umask maskiert Berechtigungsstufen, indem er sie mit einem bestimmten Wert qualifiziert. Um zu erklären, wie der umask-Wert angewendet wird, wollen wir dies an einem Beispiel erläutern. Nehmen wir an, dass wir die Standardberechtigungen für alle neuen Dateien oder Ordner auf 644 und 755 setzen wollen. Dann würden wir den folgenden Befehl verwenden.
# umask 022
Die Berechtigung mit der Nummer „2“ (Schreibberechtigung) wird aus den Standardberechtigungen des Systems von 666 und 777 „herausgefiltert“ (daher der Name „Maske“). Von nun an wird das System neuen Dateien und Verzeichnissen die Standardberechtigungen von 644 und 755 zuweisen. Einfach ausgedrückt: Um die Berechtigungsbits für eine neue Datei oder ein neues Verzeichnis zu berechnen, ziehen wir einfach den Wert von umask vom Standardwert ab, etwa so.
- 666 – 022 = 644
- 777 – 022 = 755
Oktaler Wert : Berechtigung
- 0 : lesen, schreiben und ausführen
- 1 : lesen und schreiben
- 2 : Lesen und Ausführen
- 3 : nur Lesen
- 4 : Schreiben und Ausführen
- 5 : nur Schreiben
- 6 : nur Ausführen
- 7 : keine Berechtigungen
Wir können obige Informationen verwenden, um unsere Dateiberechtigungen zu berechnen. Wenn zum Beispiel unsere umask auf 077 gesetzt ist, kann die Berechtigung wie folgt berechnet werden:
Bit | Gezielt auf | Dateirecht |
0 | Besitzer | Lesen, schreiben und ausführen |
7 | Gruppe | Keine Berechtigungen |
7 | Welt | Keine Berechtigungen |
0 : Lesen, Schreiben und Ausführen
7 : keine Berechtigungen
7 : keine Berechtigungen
Eine umask von 000 macht neu angelegte Verzeichnisse für jeden lesbar, schreibbar und ausführbar (die Berechtigungen sind dann 777).
Speicherort der umask-Konfiguration
In den meisten Linux-Distributionen kann der umask-Wert an den folgenden Stellen gefunden und konfiguriert werden:
- /etc/profile – hier werden systemweite Standardvariablen gespeichert
- /etc/bash.bashrc – hier werden die Standard-Shell-Konfigurationsdateien gespeichert
Umask-Symbole
Wie in der umask-Manpage oben beschrieben, können wir bestimmte Symbole verwenden, um die zu setzenden Berechtigungswerte anzugeben. Um den aktuell eingestellten umask-Wert in Symbolen anzuzeigen, verwenden wir den folgenden Befehl:
umask -S
Um ihn zu ändern, können wir den Befehl verwenden, in dem die Buchstaben „u“, „g“ und „o“ für den Benutzer, die Gruppe und „other“ oder „world“ stehen, wie unten gezeigt.
umask u=$, g=$, o=$
Wenn wir auf diese Weise Berechtigungen einstellen, ergänzen wir jeden „$“-Platzhalter mit dem oder den gewünschten Berechtigungssymbolen. Das Gleichheitszeichen „=“ ist nicht der einzige Operator, der uns beim Setzen von umask mit symbolischen Werten zur Verfügung steht. Wir können auch Plus- „+“ und Minus- „-“ Operatoren verwenden.
- Das „=“-Zeichen erlaubt die Aktivierung von Berechtigungen und verbietet nicht spezifizierte Berechtigungen
- Das „+“-Zeichen erlaubt die Aktivierung von Berechtigungen, ignoriert nicht spezifizierte Berechtigungen
- Das Symbol – verbietet die Aktivierung von Berechtigungen, ignoriert nicht spezifizierte Berechtigungen
Es gibt ein zusätzliches Symbol, das verwendet werden kann, wenn wir die gleiche Berechtigung für alle Berechtigungsklassen auf einmal setzen wollen (Benutzer, Gruppe und andere), und das ist:
umask a=
Fazit
Nun, da wir die Funktion der Erstellungsmaske für den Benutzer-Dateimodus besser verstehen, können wir sie sinnvoll einsetzen. Sie spart uns nicht nur wertvolle Zeit und erhöht die Sicherheit, sondern bietet uns auch bessere Möglichkeiten zur Verwaltung von Berechtigungen.
Get Started Today!
Sind Sie noch unschlüssig, wie Sie umask einsetzen sollen? Rufen Sie uns unter 800.580.4985 an, oder öffnen Sie einen Chat oder ein Ticket mit uns, um noch heute mit einem unserer sachkundigen Solutions-Teams oder einem erfahrenen Hosting-Berater zu sprechen!