Provided by: manpages-pl-dev_4.23.1-1_all
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⟩.