UMASK(2) Linux Programmeurs Handleiding UMASK(2)

umask - zet het maak-bestand masker

#include <sys/stat.h>
mode_t umask(mode_t mask);

umask() zet het maak-bestand mode masker (umask) van het aanroepende proces op masker & 0777 (m.a.w. alleen de bestandsrechten bits van masker worden gebruikt), en geeft de vorige waarde van het masker terug.

Het umask wordt gebruikt door open(2), mkdir(2) en andere systeem aanroepen die bestanden aanmaken door het modificeren van rechten ingesteld voor nieuw aangemaakte bestanden of mappen. Specifiek worden rechten in het umask uitgezet via het mode argument van open(2) en mkdir(2).

Alternatief, als de ouder map een standaard ACL heeft (zie acl(5)), dan wordt umask genegeerd, de standaard ACL wordt geërfd, de rechten bits worden gezet gebaseerd op de geërfde ACL, en de afwezige rechten bits in het mode argument worden uitgezet. Bij voorbeeld, de volgende standaard ACL is equivalent aan een umask van 022:


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

Met het gecombineerde effect van deze standaard ACL met een mode argument van 0666 (rw-rw-rw-), zouden de resulterende bestandsrechten 0644 (rw-r--r--) zijn.

De constanten die gebruikt moeten worden om masker te specificeren zijn beschreven in inode(7).

De typische standaard waarde voor een proces masker is S_IWGRP | S_IWOTH (octaal 022). In het normale geval waar het mode argument van open(2) is gegeven als:


S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH

(octaal 0666) bij het aanmaken van een nieuw bestand, zullen de rechten van het resulterend bestand zijn:


S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH

(omdat 0666 & ~022 = 0644; m.a.w.., rw-r--r--).

Deze systeem aanroep lukt altijd en de vorige waarde van het masker wordt teruggegeven.

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

Een kind proces aangemaakt met fork(2) erft het umask van zijn ouder. Het umask wordt niet verandert door execve(2).

Het is onmogelijk om umask() te gebruiken om het umask van een proces op te halen zonder dit tegelijkertijd te veranderen. Een tweede aanroep van umask() zou dan nodig zijn om de umask te herstellen. Het niet-atomair zijn van deze twee stappen zorgt er voor dat er z.g. races kunnen zijn in multi-threaded programma´s.

Vanaf Linux 4.7, kan het umask van elk proces bekeken worden in het Umask veld van /proc/[pid]/status. Door het inspecteren van dit veld in /proc/self/status kan een proces zijn umask ophalen zonder het tegelijkertijd te veranderen.

De umask instelling beïnvloed ook de rechten toegekend aan POSIX IPC objecten (mq_open(3), sem_open(3), shm_open(3)), FIFOs (mkfifo(3)), en UNIX domein sockets (unix(7)) aangemaakt door het proces. Het umask beïnvloed de rechten toegekend aan System V IPC objecten aangemaakt door het proces niet (gebruik makend van msgget(2), semget(2), shmget(2)).

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

Deze pagina is onderdeel van release 5.13 van het Linux man-pages-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.

De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.

22 maart 2021 Linux