Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       umask - ustawia maskę uprawnień tworzonych plików

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <sys/stat.h>

       mode_t umask(mode_t mask);

OPIS

       umask()  ustawia  maskę  uprawnień  procesu wywołującego, używaną podczas tworzenia plików
       (umask) na mask & 0777 (tj. używane są tylko bity uprawnień dostępu do  pliku  z  mask)  i
       zwraca poprzednią wartość maski.

       Maska  umask  jest  używana  przez  open(2),  mkdir(2) i inne wywołania systemowe tworzące
       pliki, do modyfikacji uprawnień nowo tworzonych plików  lub  katalogów.  W  szczególności,
       uprawnienia z umask są wyłączane z argumentu mode do open(2) i mkdir(2).

       Alternatywnie,  jeśli  katalog  nadrzędny  ma  domyślne listy kontroli dostępu (ACL); zob.
       acl(5)), umask jest ignorowana, dziedziczone są domyślne ACL, bity uprawnień są  ustawiane
       w  oparciu  o dziedziczone ACL, a bity uprawnień nieobecne w argumencie mode są wyłączane.
       Przykładowo, następujące domyślne ACL są równoważne umask 022:

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

       Łącząc efekt tych domyślnych ACL z argumentem mode wynoszącym 0666 (rw-rw-rw-),  wynikowym
       uprawnieniem pliku byłoby 0644 (rw-r--r--).

       Stałe, których należy używać do podawania mask, są opisane w podręczniku inode(7).

       Typową  wartością  domyślną  dla  umask  procesu  jest S_IWGRP | S_IWOTH (ósemkowe 022). W
       standardowym przypadku, gdy argument mode do open(2) określono jako:

           S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH

       (ósemkowe 0666) przy tworzeniu nowego pliku, uprawnienia pliku wynikowego będą wynosiły:

           S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH

       (ponieważ 0666 & ~022 = 0644; tj. rw-r--r--).

WARTOŚĆ ZWRACANA

       Ta funkcja systemowa zawsze kończy się pomyślnie i zwraca poprzednią wartość maski.

STANDARDY

       POSIX.1-2008.

HISTORIA

       POSIX.1-2001, SVr4, 4.3BSD.

UWAGI

       Proces potomny utworzony za pomocą fork(2) dziedziczy umask  swojego  rodzica.  Umask  nie
       jest zmieniana przez execve(2).

       Nie  da  się  wykorzystać  umask()  do  pobrania  umask  procesu, bez jego zmiany. W takim
       przypadku, konieczne byłoby zatem  drugie  wywołanie  umask(),  aby  przywrócić  pierwotną
       wartość umask. Ze względu na to, że te dwa kroki nie są niepodzielne, występuje tu możliwa
       sytuacja wyścigu w programach wielowątkowych.

       Od  Linuksa  4.7,  umask  dowolnego  procesu  można  obejrzeć  w  polu   Umask   w   pliku
       /proc/pid/status.  Sprawdzenie tego pola w /proc/self/status pozwala procesowi na pobranie
       swojej umask, bez jej zmieniania.

       Ustawienie  umask  wpływa  również  na  uprawnienia  przypisane  do  obiektów  IPC   POSIX
       (mq_open(3),  sem_open(3),  shm_open(3)),  FIFO  (mkfifo(3))  oraz  gniazd  domeny  Uniksa
       (unix(7)) tworzonych przez proces. Maska umask nie wpływa  na  uprawnienia  przypisane  do
       obiektów   IPC   Systemu V  tworzonych  przez  proces  (za  pomocą  msgget(2),  semget(2),
       shmget(2)).

ZOBACZ TAKŻE

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

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony   podręcznika   są:   Przemek   Borys
       <pborys@dione.ids.pl>,  Andrzej  Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach
       <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe  informacje  o  warunkach  licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  lub  nowszej.  Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.