umask(1) umask(1)
NAME
umask - Standard-Vergabe der Zugriffsrechte ändern (user mask)
SYNTAX
umask[ maske]
BESCHREIBUNG
Das in die Shell sh(1) bzw. ksh(1) eingebaute Kommando umask gibt die
aktuell gültige Schutzbit-Maske aus oder ändert sie. Diese Schutzbit-
Maske legt fest, welche Zugriffsrechte die Dateien und Dateiverzeich-
nisse 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 Systemverwalter 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).
Aus der Schutzbit-Maske die Zugriffsrechte bestimmen
Beim Anlegen von Dateien und Dateiverzeichnissen werden in der Regel
folgende Zugriffsrechte als Grundeinstellung vergeben [siehe open(2)]:
- rw-rw-rw- an Dateien; das ist 110110110 in Binärdarstellung
- rwxrwxrwx an Dateiverzeichnisse; das ist 111111111 in Binärdarstel-
lung
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(1) setzen.
Die Schutzbit-Maske ist eine dreistellige Oktalzahl, die Sie beim Auf-
ruf von umask angeben. Die anschließend gültigen Zugriffsrechte erge-
ben sich wie folgt:
1. Rechnen Sie die Schutzbit-Maske um in eine Binärzahl.
2. Bilden Sie zu dieser Binärzahl das Komplement; d. h. ersetzen Sie
jede Null durch eine Eins und jede Eins durch eine Null.
3. Verknüpfen Sie dieses Komplement und den Binärwert der Grundein-
stellung mit UND; d. h. das Ergebnis hat nur an den Stellen eine
Eins, an der beide Summanden eine Eins haben, an allen anderen
Stellen steht eine Null.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
umask(1) umask(1)
Beispiel:
Die Schutzbit-Maske 022 ändert die Zugriffsrechte wie folgt:
- Dateien:
Für Dateien gilt die Grund-Einstellung 110110110.
1. Die Binärzahl zu 022 ist 000010010
2. Das Komplement dazu ist 111101101
3. UND-Verknüpfung: 111101101
110110110
---------
110100100
Also haben alle neu angelegten Dateien die Zugriffsrechte
rw-r--r--
- Dateiverzeichnisse:
Für Dateiverzeichnisse gilt die Grund-Einstellung 111111111.
Und-Verknüpfung: 111101101
111111111
---------
111101101
Also haben alle neu angelegten Dateiverzeichnisse die
Zugriffsrechte rwxr-xr-x
ARGUMENTE
maske 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 aktu-
ellen Shell oder in einer ihrer Subshells neu anlegen (siehe
Aus der Schutzbit-Maske die Zugriffrechte bestimmen oben).
Da Sie mit umask von der Grundeinstellung nur Rechte wegnehmen
können, ist es unabhängig von der Angabe für maske nicht mög-
lich, an Dateien standardmäßig das Ausführrecht zu vergeben.
Verwenden Sie dazu chmod(1).
In der Korn-Shell ksh können Sie die Schutzbit-Maske auch sym-
bolisch angeben [siehe ksh(1)].
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
umask(1) umask(1)
maske nicht angegeben:
umask gibt die derzeit gültige Schutzbit-Maske aus. Die Ausgabe
kann als Eingabe für weitere umask-Kommandos verwendet werden
und hat folgendes Format: 0nnn
0 steht für Oktaldarstellung
nnn die aktuelle Schutzbit-Maske in Oktaldarstellung
In der Korn-Shell ksh können Sie die Schutzbit-Maske auch sym-
bolisch ausgeben lassen [siehe ksh(1)].
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
LANG nicht oder als leere Zeichenkette definiert, verhält sich das
System so, als wäre es nicht internationalisiert.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
BEISPIELE
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:
- für neu angelegte Dateien: rw-------
- für neu angelegte Dateiverzeichnisse: rwx--x--x
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
umask(1) umask(1)
Beispiel 2
Schutzbit-Maske ändern und ausgeben:
$ umask 033
$ > neu
$ mkdir neudvz
$ ls -ld neu neudvz
-rw-r--r-- 1 anna other 0 Mar 22 09:49 neu
drwxr--r-- 2 anna other 520 Mar 22 16:40 neudvz
$ umask
0033
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.
HINWEISE
Bei der Verwendung von umask können sich Abweichungen im Verhalten
ergeben, je nachdem, welche Shell benutzt wird. Die möglichen Abwei-
chungen sind nicht eigens beschrieben.
DATEIEN
/etc/profile
Datei, die von jeder Login-Shell ausgeführt wird. Sie dient zur
Einstellung einer Shell-Umgebung.
Der Systemverwalter legt hier in der Regel einen Schutzmasken-
Wert für Benutzer ohne Sonderrechte und einen für root fest.
SIEHE AUCH
chmod(1), ksh(1), sh(1), chmod(2), creat(2), open(2), umask(2),
profile(4).
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98