Provided by: manpages-de-dev_2.14-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.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>.