Umask: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '== 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. Umas...')
 
(Omdirigerar till umask(1p))
Märke: Ny omdirigering
 
Rad 1: Rad 1:
== umask(2) ==
#REDIRECT [[umask(1p)]]
 
=== 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:
<u>::rwx,g::r-x,o::r-x</u>
 
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.

Nuvarande version från 31 augusti 2025 kl. 15.22

Omdirigering till: