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   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.

Linux man-pages 6.8                              2 maja 2024 r.                                         umask(2)