Umask
umask(2)
NAME
umask - sätter mask för skapande av filrättigheter
LIBRARY
Standard C-biblioteket (libc, -lc)
SYNOPSIS
<source lang="c">
- include <sys/stat.h>
mode_t umask(mode_t mask); </source>
DESCRIPTION
umask() sätter det anropande processens mask för skapande av filrättigheter (umask) till mask & 0777 (dvs. endast filrättighetsbitarna av mask används), och returnerar det tidigare värdet på masken.
Umask används av open(2), mkdir(2) och andra systemanrop som skapar filer för att modifiera rättigheterna på nyskapade filer eller kataloger. Specifikt, rättigheterna i umasken stängs av från mode-argumentet till open(2) och mkdir(2).
Alternativt, om överordnad katalog har en standard-ACL (se acl(5)), ignoreras umasken, standard-ACL ärver, rättighetsbitarna sätts baserat på den ärvda ACL, och rättighetsbitar som saknas i mode-argumentet stängs av. Till exempel är följande standard-ACL ekvivalent med en umask av 022: ::rwx,g::r-x,o::r-x
Kombinera effekten av denna standard-ACL med ett mode-argument av 0666 (rw-rw-rw-), de resulterande filrättigheterna skulle vara 0644 (rw-r--r--).
Konstanterna som bör användas för att specificera mask beskrivs i inode(7).
Det typiska standardvärdet för processens umask är S_IWGRP | S_IWOTH (oktal 022). I det vanliga fallet där mode-argumentet till open(2) specificeras som: <S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH> (oktal 0666) vid skapande av en ny fil, kommer rättigheterna på den resulterande filen att vara: <S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH> (eftersom 0666 & ~022 = 0644; dvs. rw-r--r--).
RETURN VALUE
Detta systemanrop lyckas alltid och det tidigare värdet på masken returneras.
STANDARDS
POSIX.1-2008.
HISTORY
POSIX.1-2001, SVr4, 4.3BSD.
NOTES
En barnprocess skapad via fork(2) ärver sina föräldrars umask. Umasken ändras inte av execve(2).
Det är omöjligt att använda umask() för att hämta en process umask utan att samtidigt ändra den. Ett andra anrop till umask() skulle då behövas för att återställa umasken. Icke-atomariteten av dessa två steg ger potential för race conditions i flertrådade program.
Sedan Linux 4.7 kan umasken för varje process ses via Umask-fältet i /proc/pid/status. Att inspektera detta fält i /proc/self/status tillåter en process att hämta sin umask utan att samtidigt ändra den.
Umaskinställningen påverkar också rättigheterna som tilldelas till POSIX IPC-objekt (mq_open(3), sem_open(3), shm_open(3)), FIFOs (mkfifo(3)) och UNIX-domänsocklar (unix(7)) skapade av processen. Umasken påverkar inte rättigheterna som tilldelas till System V IPC-objekt skapade av processen (användande av msgget(2), semget(2), shmget(2)).
SEE ALSO
chmod(2), mkdir(2), open(2), stat(2), acl(5)
COLOPHON
Denna sida är en del av man-sidorna (Linuxkärnan och C-bibliotekets användargränssnittsdokumentation) projektet. Information om projektet finns på ⟨https://www.kernel.org/doc/man-pages/⟩. Om du har en felrapport för denna manual sida, se ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. Denna sida hämtades från tarbollen man-pages-6.9.1.tar.gz hämtad från ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages⟩ den 2024-06-26. Om du upptäcker några renderingsproblem i denna HTML version av sidan, eller du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller du har korrigeringar eller förbättringar till informationen i detta KOLLEGIALT (som inte är del av den ursprungliga manualsidan), skicka ett mail till man-pages@man7.org.