oracular (2) umask.2.gz

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