(get or set the file mode creation mask)
Das in die POSIX-Shell sh eingebaute Kommando umask gibt die aktuell gültige Schutzbit-Maske aus oder ändert sie. Diese Schutzbit-Maske legt fest, welche Zugriffsrechte die Dateien und Dateiverzeichnisse erhalten, die Sie ab jetzt in der aktuellen Shell oder in einer ihrer Subshells neu anlegen.
Wenn Sie mit umask die Schutzbit-Maske ändern, gilt diese Änderung so lange, bis Sie mit umask einen neuen Wert vereinbaren oder die Shell beenden, in der Sie umask aufgerufen haben.
Der POSIX-Verwalter kann mit umask den Wert der Schutzbit-Maske in der Datei /etc/profile festlegen. Da /etc/profile von jeder Login-Shell ausgeführt wird, gelten die so bestimmten Zugriffsrechte für jeden am System angemeldeten Benutzer (siehe Beispiel 1).
Syntax
umask[ -S][ maske] |
Die Maske wird symbolisch in folgender Form ausgegeben:
wobei u = user, g = group, o = others und zugriffsrechte = r, w, x
eine dreistellige Oktalzahl für die Schutzbit-Maske. Diese Schutzbit-Maske legt fest, welche Zugriffsrechte die Dateien und Dateiverzeichnisse erhalten, die Sie ab jetzt in der aktuellen Shell oder in einer ihrer Subshells neu anlegen (siehe Aus der Schutzbit- Maske die Zugriffrechte bestimmen). Da Sie mit umask von der Grundeinstellung nur Rechte wegnehmen können, ist es unabhängig von der Angabe für maske nicht möglich, an Dateien standardmäßig das Ausführrecht zu vergeben. Verwenden Sie dazu chmod. maske nicht angegeben: |
Aus der Schutzbit-Maske die Zugriffsrechte bestimmen
Beim Anlegen von Dateien und Dateiverzeichnissen werden in der Regel folgende Zugriffsrechte als Grundeinstellung vergeben (siehe open() [4]):
Mit umask können Sie von dieser Grundeinstellung nur Rechte wegnehmen. Das bedeutet, es ist mit umask nicht möglich, an Dateien standarmäßig das Ausführrecht zu vergeben. Das entsprechende x-Bit können Sie nur mit dem Kommando chmod setzen. Die Schutzbit-Maske ist eine dreistellige Oktalzahl, die Sie beim Aufruf von umask angeben. Die anschließend gültigen Zugriffsrechte ergeben sich wie folgt:
Beispiel Die Schutzbit-Maske 022 ändert die Zugriffsrechte wie folgt:
|
Datei
/etc/profile Datei, die von jeder Login-Shell ausgeführt wird. Sie dient zur Einstellung einer Shell-Umgebung. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos umask: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel 1
Die Datei /etc/profile enthält häufig die folgenden Zeilen: if [ "$USER" != "admin" -a "$USER" != "root" ] then umask 066 fi Da jede Login-Shell die Datei /etc/profile ausführt, hat die Schutzbit-Maske für alle Benutzer außer root und admin den Wert 066. Deshalb werden folgende Zugriffsrechte vergeben:
|
Beispiel 2
Schutzbit-Maske ändern und ausgeben:
Die Ausgabe des Kommandos ls -ld ... zeigt, welche Zugriffrechte an neue Dateien und Dateiverzeichnisse vergeben werden, wenn die Schutzbit-Maske auf den Wert 033 gesetzt wird. |
Siehe auch
chmod chmod(), creat(), open(), umask() [4] |