umask(2) System Calls Manual umask(2) NAZWA umask - ustawia maske uprawnien tworzonych plikow BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include mode_t umask(mode_t mask); OPIS umask() ustawia maske uprawnien procesu wywolujacego, uzywana podczas tworzenia plikow (umask) na mask & 0777 (tj. uzywane sa tylko bity uprawnien dostepu do pliku z mask) i zwraca poprzednia wartosc maski. Maska umask jest uzywana przez open(2), mkdir(2) i inne wywolania systemowe tworzace pliki, do modyfikacji uprawnien nowo tworzonych plikow lub katalogow. W szczegolnosci, uprawnienia z umask sa wylaczane z argumentu mode do open(2) i mkdir(2). Alternatywnie, jesli katalog nadrzedny ma domyslne listy kontroli dostepu (ACL); zob. acl(5)), umask jest ignorowana, dziedziczone sa domyslne ACL, bity uprawnien sa ustawiane w oparciu o dziedziczone ACL, a bity uprawnien nieobecne w argumencie mode sa wylaczane. Przykladowo, nastepujace domyslne ACL sa rownowazne umask 022: u::rwx,g::r-x,o::r-x Laczac efekt tych domyslnych ACL z argumentem mode wynoszacym 0666 (rw-rw-rw-), wynikowym uprawnieniem pliku byloby 0644 (rw-r--r--). Stale, ktorych nalezy uzywac do podawania mask, sa opisane w podreczniku inode(7). Typowa wartoscia domyslna dla umask procesu jest S_IWGRP | S_IWOTH (osemkowe 022). W standardowym przypadku, gdy argument mode do open(2) okreslono jako: S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (osemkowe 0666) przy tworzeniu nowego pliku, uprawnienia pliku wynikowego beda wynosily: S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH (poniewaz 0666 & ~022 = 0644; tj. rw-r--r--). WARTOSC ZWRACANA Ta funkcja systemowa zawsze konczy sie pomyslnie i zwraca poprzednia wartosc maski. STANDARDY POSIX.1-2008. HISTORIA POSIX.1-2001, SVr4, 4.3BSD. UWAGI Proces potomny utworzony za pomoca fork(2) dziedziczy umask swojego rodzica. Umask nie jest zmieniana przez execve(2). Nie da sie wykorzystac umask() do pobrania umask procesu, bez jego zmiany. W takim przypadku, konieczne byloby zatem drugie wywolanie umask(), aby przywrocic pierwotna wartosc umask. Ze wzgledu na to, ze te dwa kroki nie sa niepodzielne, wystepuje tu mozliwa sytuacja wyscigu w programach wielowatkowych. Od Linuksa 4.7, umask dowolnego procesu mozna obejrzec 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 wplywa rowniez na uprawnienia przypisane do obiektow 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 wplywa na uprawnienia przypisane do obiektow IPC Systemu V tworzonych przez proces (za pomoca msgget(2), semget(2), shmget(2)). ZOBACZ TAKZE chmod(2), mkdir(2), open(2), stat(2), acl(5) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Andrzej Krzysztofowicz i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.9.1 2 maja 2024 r. umask(2)