Scroll to navigation

UMASK(2) Linux-Programmierhandbuch UMASK(2)

BEZEICHNUNG

umask - Dateimodus-Erstellungsmaske setzen

ÜBERSICHT

#include <sys/types.h>
#include <sys/stat.h>

mode_t umask(mode_t mask);

BESCHREIBUNG

umask() setzt die Dateimodus-Erstellungsmaske (Umask) des aufrufenden Prozesses auf mask & 0777 (d.h. nur die Dateiberechtigungsbits von mask werden verwendet) und liefert den vorherigen Wert der Maske zurück.

Die Umask wird für open(2), mkdir(2) und andere Systemaufrufe verwendet, die Dateien erstellen, um die Rechte auf neu erstellte Dateien oder Verzeichnisse zu verändern. Insbesondere werden die Rechte in der Umask von den mode-Argumenten für open(2) und mkdir(2) abgestellt.

Alternativ wird die Umask ignoriert, falls das Elternverzeichnis eine Standard-ACL hat (siehe acl(5)), die Standard-ACL wird vererbt, die Berechtigungsbits werden basierend auf der vererbten ACL gesetzt und die Berechtigungsbits, die im Argument mode fehlen, werden abgeschaltet. Beispielsweise ist die folgende Standard-ACL äquivalent zu einer Umask 022:

u::rwx,g::r-x,o::r-x

Wird der Effekt dieser Standard-ACL mit dem Argument mode von 0666 (rw-rw-rw-) kombiniert, ist die resultierende Dateiberechtigung 0644 (rw-r--r--).

Die Konstanten, die für die Angabe von mask verwendet werden sollen, werden in inode(7) beschrieben.

Der typische Vorgabewert für die Prozess-Umask ist S_IWGRP | S_IWOTH (oktal 022). Im normalen Fall, wenn das Argument mode bei open(2) als


S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH


(oktal 0666) bei der Erstellung einer neuen Datei angegeben wurde, werden die Rechte für die entstehendene Datei


S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH


sein (da 0666 & ~022 = 0644; d.h., rw-r--r--).

RÜCKGABEWERT

Der Systemaufruf hat immer Erfolg und der vorherige Wert der Maske wird zurückgegeben.

KONFORM ZU

POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

ANMERKUNGEN

Ein Kindprozess, der mit fork(2) erstellt wird, erbt die Umask des Elternprozesses. Die Umask bleibt bei execve(2) unverändert.

Es ist unmöglich, die Umask eines Prozesses mit umask() auszulesen, ohne sie dabei gleichzeitig zu verändern. Ein zweiter Aufruf von umask() wäre dann notwendig, um die Umask wieder herzustellen. Da diese beiden Schritte keine atomaren Operationen sind, gibt es in Multithreading-Programmen die Möglichkeit einer Race-Condition.

Seit Linux 4.7 kann die Umask jedes Prozesses in dem Feld Umask von /proc/[PID]/status betrachtet werden. Prüfung des Feldes in /proc/self/status erlaubt es einem Prozess, seine Umask abzufragen, ohne sie gleichzeitig zu ändern.Seit Linux 4.7 kann die Umask jedes Prozesses in dem Feld Umask von /proc/[PID]/status betrachtet werden. Die Abfrage dieses Feldes in /proc/self/status ermöglicht es einem Prozess, seine Umask zu erhalten, ohne sie dabei gleichzeitig zu ändern.

Die Umask-Einstellung beeinflusst auch die Berechtigungen der vom Prozess erstellten POSIX-IPC-Objekte (mq_open(3), sem_open(3), shm_open(3)), FIFOs (mkfifo(3)) und UNIX-Domain-Sockets (unix(7)). Die Umask beeinflusst nicht die Berechtigungen, die den vom Prozess (mittels msgget(2), semget(2) und shmget(2)) erzeugten System-V-IPC-Objekten zugewiesen wurden.

SIEHE AUCH

chmod(2), mkdir(2), open(2), stat(2), acl(5)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.16 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>, Helge Kreutzmann <debian@helgefjell.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Dr. Tobias Quathamer <toddy@debian.org> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.

15. September 2017 Linux