Provided by: manpages-de-dev_2.5-1_all bug

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.15  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>.