umask(2)

NUME
umask - stabilește o mască de creare a modului de fișier

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <sys/stat.h>

mode_t umask(mode_t mask);

DESCRIERE
umask() stabilește masca de creare a modului de fișier a procesului apelant (umask) la mask & 0777 (adică sunt utilizați numai biții de permisiune de fișier din mask) și returnează valoarea anterioară a măștii.

„umask” este utilizat de open(2), mkdir(2) și alte apeluri de sistem care creează fișiere pentru a modifica permisiunile acordate fișierelor sau directoarelor nou create. În mod specific, permisiunile din „umask” sunt dezactivate din argumentul mode pentru open(2) și mkdir(2).

Alternativ, dacă directorul părinte are o listă de control de acces „ACL” implicită (a se vedea acl(5)), „umask” este ignorat, lista de control de acces implicită este moștenită, biții de permisiune sunt stabiliți pe baza listei de control de acces moștenite, iar biții de permisiune absenți în argumentul mode sunt dezactivați. De exemplu, următoarea ACL implicită este echivalentă cu un umask de 022:

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

Combinând efectul acestei ACL implicite cu un argument mode de 0666 (rw-rw-rw-), permisiunile de fișier rezultate ar fi 0644 (rw-r--r--).

Constantele care trebuie utilizate pentru a specifica mask sunt descrise în inode(7).

Valoarea implicită tipică pentru umask-ul procesului este S_IWGRP | S_IWOTH (octal 022). În cazul obișnuit în care argumentul mode al lui open(2) este specificat ca:

    S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH

(octal 0666) la crearea unui fișier nou, permisiunile pentru fișierul rezultat vor fi:

    S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH

(pentru că 0666 & ~022 = 0644; adică rw-r--r--).

VALOAREA RETURNATĂ
Acest apel de sistem reușește întotdeauna, iar valoarea anterioară a măștii este returnată.

STANDARDE
POSIX.1-2008.

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

NOTE
Un proces-copil creat prin fork(2) moștenește umask-ul părintelui său. umask-ul este lăsat neschimbat de execve(2).

Este imposibil să se utilizeze umask() pentru a prelua umask-ul unui proces fără a-l modifica în același timp. Un al doilea apel la umask() ar fi atunci necesar pentru a restabili umask-ul. Neatomicitatea acestor doi pași oferă posibilitatea unor competiții în programele cu mai multe fire.

Începând cu Linux 4.7, umask-ul oricărui proces poate fi vizualizat prin intermediul câmpului Umask din /proc/pid/status. Inspectarea acestui câmp în /proc/self/status permite unui proces să își recupereze umask-ul fără a-l modifica în același timp.

Valoarea umask-ului afectează, de asemenea, permisiunile atribuite obiectelor POSIX IPC (mq_open(3), sem_open(3), shm_open(3)), FIFO (mkfifo(3)) și soclurilor de domeniu UNIX (unix(7)) create de proces. umask-ul nu afectează permisiunile atribuite obiectelor System V IPC create de proces (folosind msgget(2), semget(2), shmget(2), shmget(2)).

CONSULTAȚI ȘI
chmod(2), mkdir(2), open(2), stat(2), acl(5)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.