umask(2) System Calls Manual umask(2) BEZEICHNUNG umask - Dateimodus-Erstellungsmaske setzen BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include mode_t umask(mode_t Maske); BESCHREIBUNG umask() setzt die Dateimodus-Erstellungsmaske (Umask) des aufrufenden Prozesses auf Maske & 0777 (d.h. nur die Dateiberechtigungsbits von Maske werden verwendet) und liefert den vorherigen Wert der Maske zuruck. Die Umask wird fur open(2), mkdir(2) und andere Systemaufrufe verwendet, die Dateien erstellen, um die Rechte auf neu erstellte Dateien oder Verzeichnisse zu verandern. Insbesondere werden die Rechte in der Umask von den mode-Argumenten fur 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 aquivalent 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 fur die Angabe von Maske verwendet werden sollen, werden in inode(7) beschrieben. Der typische Vorgabewert fur 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 fur die entstehendene Datei S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH sein (da 0666 & ~022 = 0644; d.h. rw-r--r--). RUCKGABEWERT Der Systemaufruf hat immer Erfolg und der vorherige Wert der Maske wird zuruckgegeben. STANDARDS POSIX.1-2008. GESCHICHTE POSIX.1-2001, SVr4, 4.3BSD. ANMERKUNGEN Ein Kindprozess, der mit fork(2) erstellt wird, erbt die Umask des Elternprozesses. Die Umask bleibt bei execve(2) unverandert. Es ist unmoglich, die Umask eines Prozesses mit umask() auszulesen, ohne sie dabei gleichzeitig zu verandern. Ein zweiter Aufruf von umask() ware dann notwendig, um die Umask wieder herzustellen. Da diese beiden Schritte keine atomaren Operationen sind, gibt es in Multithreading-Programmen die Moglichkeit einer Race-Condition. Seit Linux 4.7 kann die Umask jedes Prozesses in dem Feld Umask von /proc/PID/status betrachtet werden. Prufung des Feldes in /proc/self/status erlaubt es einem Prozess, seine Umask abzufragen, ohne sie gleichzeitig zu andern. 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) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Schulze , Helge Kreutzmann , Martin Eberhard Schauer , Mario Blattermann und Dr. Tobias Quathamer erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 umask(2)