.\" -*- 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 .\" Modified 1993-07-21 by Rik Faith .\" Modified 1997-01-12 by Michael Haardt .\" : NFS details .\" Modified 2004-06-23 by Michael Kerrisk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH chmod 2 "30 marca 2023 r." "Linux man\-pages 6.05.01" .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 \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 \fP /* Definicja stałych AT_* */ \fB#include \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 jest \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ładnik ś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 .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 STANDARDY POSIX.1\-2008. .SH HISTORIA .TP \fBchmod\fP() .TQ \fBfchmod\fP() 4.4BSD, SVr4, POSIX.1\-2001. .TP \fBfchmodat\fP() POSIX.1\-2008. Linux 2.6.16, glibc 2.4. .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 , Andrzej Krzysztofowicz i Michał Kułach . .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 .