.\" -*- coding: UTF-8 -*-
.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
.\" and Copyright (C) 2006, 2014 Michael Kerrisk
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" Modified by Michael Haardt <michael@moria.de>
.\" Modified 1993-07-21 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1997-01-12 by Michael Haardt
.\"   <michael@cantor.informatik.rwth-aachen.de>: NFS details
.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH chmod 2 "5 lutego 2023 r." "Linux man\-pages 6.03" 
.SH NAZWA
chmod, fchmod, fchmodat \- zmienia prawa do pliku
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <sys/stat.h>\fP
.PP
\fBint chmod(const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB);\fP
\fBint fchmod(int \fP\fIfd\fP\fB, mode_t \fP\fImode\fP\fB);\fP
.PP
\fB#include <fcntl.h>\fP           /* Definicja stałych AT_* */
\fB#include <sys/stat.h>\fP
.PP
\fBint fchmodat(int \fP\fIdirfd\fP\fB, const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB, int \fP\fIflags\fP\fB);\fP
.fi
.PP
.RS -4
Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)):
.RE
.PP
.nf
.\"        || (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED)
.\"        || (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED)
\fBfchmod\fP():
    Od glibc 2.24:
        _POSIX_C_SOURCE >= 199309L
    glibc 2.19 do glibc 2.23
        _POSIX_C_SOURCE
    glibc 2.16 do glibc 2.19:
        _BSD_SOURCE || _POSIX_C_SOURCE
    glibc 2.12 do glibc 2.16:
        _BSD_SOURCE || _XOPEN_SOURCE >= 500
            || _POSIX_C_SOURCE >= 200809L
    glibc 2.11 i wcześniejsze:
        _BSD_SOURCE || _XOPEN_SOURCE >= 500
.fi
.PP
\fBfchmodat\fP():
.nf
    Od glibc 2.10:
        _POSIX_C_SOURCE >= 200809L
    Przed glibc 2.10:
        _ATFILE_SOURCE
.fi
.SH OPIS
Wywołania systemowe \fBchmod\fP() oraz \fBfchmod\fP() modyfikują bity trybu
pliku. (Tryb pliku składa się z bitów uprawnień do pliku plus set\-user\-ID,
set\-group\-ID oraz bitu lepkości). Te wywołania systemowe różnią się tylko
sposobem określenia pliku:
.IP \[bu] 3
\fBchmod\fP() zmienia tryb określonego pliku, którego ścieżka jest podana w
\fIpathname\fP, która jest rozwiązywana, jeśli jest to dowiązanie symboliczne.
.IP \[bu]
\fBfchmod\fP() zmienia tryb pliku przypisanego do deskryptora otwartego pliku
\fIfd\fP.
.PP
Tryb nowego pliku jest określony w \fImode\fP, który jest maską bitową
stworzoną jako suma logiczna (OR) zera lub więcej następujących:
.TP  18
\fBS_ISUID\fP  (04000)
set\-user\-ID (ustawia efektywny ID użytkownika procesu na \fBexecve\fP(2))
.TP 
\fBS_ISGID\fP  (02000)
set\-group\-ID (ustawia efektywny ID grupy na procesie na \fBexecve\fP(2);
obowiązkowe blokowanie, jak opisano w \fBfcntl\fP(2); bierze grupę nowego pliku
z katalogu nadrzędnego, jak opisano w \fBchown\fP(2) i \fBmkdir\fP(2))
.TP 
\fBS_ISVTX\fP  (01000)
bit lepkości (flaga ograniczonego usuwania, jak opisano w \fBunlink\fP(2))
.TP 
\fBS_IRUSR\fP  (00400)
odczyt przez właściciela
.TP 
\fBS_IWUSR\fP  (00200)
zapis przez właściciela
.TP 
\fBS_IXUSR\fP  (00100)
wykonanie/wyszukiwanie przez właściciela (\[Bq]wyszukiwanie\[rq] dotyczy
katalogów, oraz oznacza możliwość wejścia do katalogu)
.TP 
\fBS_IRGRP\fP  (00040)
odczyt przez grupę
.TP 
\fBS_IWGRP\fP  (00020)
zapis przez grupę
.TP 
\fBS_IXGRP\fP  (00010)
uruchomianie/przeszukiwanie przez grupę
.TP 
\fBS_IROTH\fP  (00004)
odczyt przez pozostałych
.TP 
\fBS_IWOTH\fP  (00002)
zapis przez pozostałych
.TP 
\fBS_IXOTH\fP  (00001)
uruchomianie/przeszukiwanie przez pozostałych
.PP
Efektywny UID wywoływanego procesu musi zgadzać się z właścicielem pliku,
lub proces musi być uprzywilejowany (Linux: musi mieć przywilej
(ang. capability) \fBCAP_FOWNER\fP).
.PP
Jeśli wywołany proces nie jest uprzywilejowany (Linux: nie ma przywileju
\fBCAP_FSETID\fP), oraz grupa pliku nie zgadza się z efektywnym ID grupy
procesu lub jednej z jego dodatkowych ID grupy, \fBS_ISGID\fP zostanie
wyłączony, lecz nie spowoduje to zwrócenia błędu.
.PP
Jako wyznacznik bezpieczeństwa, zależnie od systemu plików, bity SUID i SGID
mogą zostać wyłączone podczas zapisywania pliku (na Linuksie, zdarza się to
jeśli zapisujący proces nie ma przywileju \fBCAP_FSETID\fP). Na niektórych
systemach plików, tylko superużytkownik może ustawić bit lepkości, który
może mieć specjalne znaczenie. Znaczenie bitów lepkości, SUID i SGID dla
katalogów opisano w \fBinode\fP(7).
.PP
.\"
.\"
Na systemach plików NFS, ograniczanie praw będzie miało natychmiastowy wpływ
na aktualnie otwarte pliki, gdyż kontrola dostępu dokonywana jest na
serwerze, a otwarte pliki obsługiwane są przez klienta. Rozszerzenie
uprawnień może zostać udostępnione z opóźnieniem innym klientom, jeśli mają
włączone buforowanie atrybutów.
.SS fchmodat()
Wywołanie systemowe \fBfchmodat\fP() operuje w dokładnie taki sam sposób jak
\fBchmod\fP(), z wyjątkiem różnic opisanych tutaj.
.PP
Jeśli ścieżka podana w \fIścieżka\fP jest względna, wtedy jest ona
interpretowana względem katalogu przypisanego przez deskryptor pliku
\fIdirfd\fP (zamiast względem obecnego katalogu roboczego wywołanego procesu,
tak jak dzieje się to w przypadku \fBchmod\fP() dla względnych ścieżek.
.PP
Jeśli ścieżka jest względna, a \fIdirdf\fP ma szczególną wartość \fBAT_FDCWD\fP,
wtedy \fIścieżka\fP jest interpretowana względnie do obecnego katalogu
roboczego wywołanego procesu (jak w \fBchmod\fP()).
.PP
Jeśli ścieżka \fIpathname\fP jest bezwzględna, to \fIdirfd\fP jest ignorowane.
.PP
\fIflags\fP mogą być 0 lub zawierać następujące znaczniki:
.TP 
\fBAT_SYMLINK_NOFOLLOW\fP
Jeśli \fIpathname\fP jest dowiązaniem symbolicznym, nie rozwiązuje go: w zamian
operuje na samym dowiązaniu. Ten znacznik nie jest obecnie zaimplementowany.
.PP
Potrzeba \fBfchmodat\fP() jest wyjaśniona w \fBopenat\fP(2)
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest \-1 i
ustawiane \fIerrno\fP, wskazując błąd.
.SH BŁĘDY
W zależności od systemu plików, mogą wystąpić błędy niewymienione poniżej.
.PP
Powszechniejsze błędy \fBfchmod\fP są następujące:
.TP 
\fBEACCES\fP
Brak praw do przeszukiwania dla składowej ścieżki (zob. także
\fBpath_resolution\fP(7)).
.TP 
\fBEBADF\fP
(\fBfchmod\fP())  Deskryptor pliku \fIfd\fP jest nieprawidłowy.
.TP 
\fBEBADF\fP
(\fBfchmodat\fP())  \fIpathname\fP jest względne, lecz \fIdirfd\fP nie wynosi ani
\fBAT_FDCWD\fP, ani nie jest prawidłowym deskryptorem pliku.
.TP 
\fBEFAULT\fP
\fIpathname\fP wskazuje poza dostępną dla użytkownika przestrzeń adresową.
.TP 
\fBEINVAL\fP
(\fBfchmodat\fP())  Podano nieprawidłowy znacznik w \fIflags\fP.
.TP 
\fBEIO\fP
Wystąpił błąd wejścia/wyjścia.
.TP 
\fBELOOP\fP
Podczas rozwiązywania \fIpathname\fP napotkano zbyt wiele dowiązań
symbolicznych.
.TP 
\fBENAMETOOLONG\fP
Ścieżka \fIpathname\fP jest zbyt długa.
.TP 
\fBENOENT\fP
Plik nie istnieje.
.TP 
\fBENOMEM\fP
Brak pamięci jądra.
.TP 
\fBENOTDIR\fP
Składowa ścieżki nie jest katalogiem.
.TP 
\fBENOTDIR\fP
(\fBfchmodat\fP())  \fIpathname\fP jest względna a \fIdirfd\fP jest deskryptorem
pliku odnoszącym się do pliku zamiast do katalogu.
.TP 
\fBENOTSUP\fP
(\fBfchmodat\fP())  \fIflags\fP określono na \fBAT_SYMLINK_NOFOLLOW\fP, który nie
jest obsługiwany.
.TP 
\fBEPERM\fP
Efektywny UID nie odpowiada właścicielowi pliku, a proces nie jest
uprzywilejowany (Linux: nie ma przywileju \fBCAP_FOWNER\fP).
.TP 
\fBEPERM\fP
Plik jest oznaczony jako tylko do odczytu lub tylko do nadpisu (zob. również
\fBioctl_iflags\fP(2)).
.TP 
\fBEROFS\fP
Podany plik znajduje się na systemie plików przeznaczonym tylko do odczytu.
.SH WERSJE
\fBfchmodat\fP()  dodano w Linuksie 2.6.16; obsługa w bibliotece została dodana
w glibc 2.4.
.SH STANDARDY
\fBchmod\fP(), \fBfchmod\fP(): 4.4BSD, SVr4, POSIX.1\-2001i, POSIX.1\-2008.
.PP
\fBfchmodat\fP(): POSIX.1\-2008.
.SH UWAGI
.SS "Różnice biblioteki C/jądra"
Funkcja opakowująca \fBfchmodat\fP() z biblioteki GNU C implementuje określony
w POSIX interfejs opisany na tej stronie. Ten interfejs różni się od
zaszytego w Linuksie wywołania systemowego, które \fInie\fP ma argumentu
\fIflags\fP.
.SS "Uwagi dla glibc"
Na starszych wersjach jądra Linuxa gdzie \fBfchmodat\fP() nie było dostępne,
funkcja opakowująca z glibc wraca do używania \fBchmod\fP(). Kiedy \fIpathname\fP
jest względną ścieżką, glibc konstruuje ścieżkę na bazie dowiązania
symbolicznego w \fI/proc/self/fd\fP, który odpowiada argumentowi \fIdirfd\fP.
.SH "ZOBACZ TAKŻE"
\fBchmod\fP(1), \fBchown\fP(2), \fBexecve\fP(2), \fBopen\fP(2), \fBstat\fP(2), \fBinode\fP(7),
\fBpath_resolution\fP(7), \fBsymlink\fP(7)
.PP
.SH 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>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
