umask(2): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= umask(2) = == NAMN == umask — sätt filskapandemask (file mode creation mask) == BIBLIOTEK == Standard C-biblioteket (''libc'', ''-lc'') == SYNOPS == <pre> #include <sys/stat.h> mode_t umask(mode_t mask); </pre> == BESKRIVNING == '''umask()''' sätter den anropande processens filskapandemask (umask) till <code>mask & 0777</code> (d.v.s. endast rättighetsbitarna i <code>mask</code> används) och returnerar det tidigare mask-värdet. Umask används av...')
 
(Ingen skillnad)

Nuvarande version från 31 augusti 2025 kl. 15.24

umask(2)

NAMN

umask — sätt filskapandemask (file mode creation mask)

BIBLIOTEK

Standard C-biblioteket (libc, -lc)

SYNOPS

#include <sys/stat.h>

mode_t umask(mode_t mask);

BESKRIVNING

umask() sätter den anropande processens filskapandemask (umask) till mask & 0777 (d.v.s. endast rättighetsbitarna i mask används) och returnerar det tidigare mask-värdet.

Umask används av open(2), mkdir(2) och andra systemanrop som skapar filer för att modifiera de rättigheter som ges till nyss skapade filer och kataloger. Mer specifikt stängs (”släcks”) de rättigheter som finns i umask från mode-argumentet till open(2) och mkdir(2).

Om den överordnade katalogen har en standard-ACL (se acl(5)) ignoreras umask; standard-ACL:en ärvs, rättighetsbitarna sätts utifrån den ärvda ACL:en, och de rättighetsbitar som saknas i mode-argumentet stängs av. Exempel: följande standard-ACL är ekvivalent med umask 022:

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

Kombineras detta med mode = 0666 (rw-rw-rw-) för en ny fil blir resultatet 0644 (rw-r--r--).

Konstanter som används för att specificera mask beskrivs i inode(7).

Typiskt standardvärde för processens umask är S_IWGRP | S_IWOTH (oktal 022). I det vanliga fallet där mode till open(2) är:

S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH

(oktal 0666) vid skapande av en ny fil blir filens rättigheter:

S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH

(eftersom 0666 & ~022 = 0644; dvs. rw-r--r--).

RETURVÄRDE

Anropet lyckas alltid och returnerar det tidigare mask-värdet.

STANDARDER

POSIX.1-2008.

HISTORIK

POSIX.1-2001, SVr4, 4.3BSD.

ANMÄRKNINGAR

Ett barn som skapas via fork(2) ärver sin förälders umask. Umask ändras inte av execve(2).

Det går inte att hämta en process umask med umask() utan att samtidigt ändra den. Ett andra anrop till umask() krävs för att återställa värdet. Dessa två steg är inte atomiska och kan skapa tävlingsförhållanden (race conditions) i flertrådade program.

Sedan Linux 4.7 kan en process umask läsas i fältet Umask i /proc/<pid>/status. Genom att läsa /proc/self/status kan en process få sin umask utan att ändra den.

Umask påverkar även rättigheterna som ges till POSIX-IPC-objekt (mq_open(3), sem_open(3), shm_open(3)), FIFOs (mkfifo(3)) och UNIX-domänsocklar (unix(7)) som skapas av processen. Umask påverkar inte rättigheterna för System V-IPC-objekt som skapas av processen (msgget(2), semget(2), shmget(2)).

SE ÄVEN

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

COLOFON

Denna sida är del av projektet man-pages (dokumentation av gränssnitt mellan Linuxkärnan/C-biblioteket och användarutrymmet). Information finns på ⟨https://www.kernel.org/doc/man-pages/⟩. Felrapportering: ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. Sidan hämtades från tarballen man-pages-6.10.tar.gz (2024-07-23).

Sidslut

Orginalhemsidan på Engelska : https://man7.org/linux/man-pages/man2/umask.2.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.