Provided by:
manpages-pl-dev_20060617-1_all 
NAZWA
chmod, fchmod - zmiana praw do pliku
SKŁADNIA
#include <sys/types.h>
#include <sys/stat.h>
int chmod(const char *path, mode_t mode);
int fchmod(int fildes, mode_t mode);
OPIS
Zmienione zostają prawa dostępu do pliku określonego przez path lub
wskazywanego przez filedes.
Prawa są podawane jako or następujących wartości:
S_ISUID 04000 ustawia ID użytkowinka przy uruchomieniu
S_ISGID 02000 ustawia ID grupy przy uruchomieniu
S_ISVTX 01000 bit "sticky"
S_IRUSR (S_IREAD)
00400 odczyt przez właściciela
S_IWUSR (S_IWRITE)
00200 zapis przez właściciela
S_IXUSR (S_IEXEC)
00100 uruchomianie/przeszukiwanie przez właściciela
S_IRGRP 00040 odczyt przez grupę
S_IWGRP 00020 zapis przez grupę
S_IXGRP 00010 uruchomianie/przeszukiwanie przez grupę
S_IROTH 00004 odczyt przez pozostałych
S_IWOTH 00002 zapis przez pozostałych
S_IXOTH 00001 uruchomianie/przeszukiwanie przez pozostałych
Efektywny UID procesu musi być zerem, lub odpowiadać właścicielowi
pliku.
Jeśli efektywny UID procesu jest różny od zera, a grupa pliku różni się
od efektywnego ID grupy procesu i nie jest też żadną z kego grup
dodatkowych, to bit S_ISGID zostanie wyzerowany, ale nie spowoduje to
wystąpienia błędu.
Zależnie od systemu plików, bity SUID i SGID mogą zostać wyłączone
podczas zapisywania pliku. Na niektórych systemach plików, tylko
superużytkownik może ustawić bit "sticky", który może mieć specjalne
znaczenie. Znaczenie bitów "sticky", SUID i SGID dla katalogów opisano
w stat(2).
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 sa przez klienta. Rozszerzenie
uprawnień może zostać udostępnione z opóźnieniem innym klientom, jeśli
mają włączone buforowanie atrybutów.
WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu, zwracane jest zero. W wypadku błędu zwracane
jest -1 i odpowiednio ustawiane errno.
BŁĘDY
Dla niektórych systemów plików mogą być zwracane inne błędy niż opisane
poniżej. Najogólniejsze błędy chmod to:
EPERM Efektywny UID nie odpoiwada właścicielowi pliku i nie jest
zerem.
EROFS Podany plik znajduje się na systemie plików przeznaczonym tylko
do odczytu.
EFAULT path wskazuje poza dostępną dla użytkownika przestrzeń adresową.
ENAMETOOLONG
path jest zbyt długie.
ENOENT Plik nie istnieje.
ENOMEM Brak pamięci jądra.
ENOTDIR
Składnik ścieżki nie jest katalogiem.
EACCES Brak praw do przeszukiwania dla składnika ścieżki.
ELOOP Podczas rozwiązywania path napotkano zbyt wiele dowiązań
symbolicznych.
EIO Wystąpił błąd wejścia-wyjścia.
Ogólne błędy dla fchmod to:
EBADF Deskryptor pliku fildes jest nieprawidłowy.
EROFS Zobacz wyżej.
EPERM Zobacz wyżej.
EIO Zobacz wyżej.
ZGODNE Z
Funkcja chmod jest zgodna z SVr4, SVID, POSIX, X/OPEN, 4.4BSD. SVr4
dokumentuje błędy EINTR, ENOLINK i EMULTIHOP, lecz nie dokumentuje
ENOMEM. POSIX.1 nie dokumentuje błędów EFAULT, ENOMEM, ELOOP i EIO, ani
makr S_IREAD, S_IWRITE i S_IEXEC.
Funkcja fchmod jest zgodna z 4.4BSD i SVr4. SVr4 dokumentuje dodatkowe
błędy EINTR i ENOLINK. POSIX wymaga funkcji fchmod, gdy zdefiniowane
jest co najmniej jedno z _POSIX_MAPPED_FILES i
_POSIX_SHARED_MEMORY_OBJECTS oraz dokumentuje dodatkowe błędy ENOSYS i
EINVAL, ale nie dokumentuje EIO.
POSIX i X/OPEN nie dokumentują bitu "sticky".
ZOBACZ TAKŻE
open(2), chown(2), execve(2), stat(2)