NAZWA¶
chown, fchown, lchown - zmiana właściciela pliku
SKŁADNIA¶
#include <sys/types.h>
 
#include <unistd.h>
 
int chown(const char *path, uid_t owner, gid_t
  group);
 
int fchown(int fd, uid_t owner, gid_t
  group);
 
int lchown(const char *path, uid_t owner, gid_t
  group);
OPIS¶
 Uwaga! To tłumaczenie może być nieaktualne!
Zmieniony zostaje właściciel pliku określonego przez 
path
  lub przez deskryptor 
fd. Tylko superużytkownik może
  zmieniać właściciela pliku. Właściciel pliku
  może zmieniać tylko grupę pliku na dowolną grupę,
  której jest członkiem. Superużytkownik może zmieniać
  grupę bez ograniczeń.
 
Jeśli 
owner lub 
group jest podane jako -1, to ten
  identyfikator nie jest wtedy zmieniany.
 
Jeżeli właściciel lub grupa pliku uruchamialnego są
  zmieniane przez użytkownika nie posiadającego praw
  superużytkownika, to atrybuty S_ISUID i S_ISGID pliku zostaną
  wyzerowane. Standard POSIX nie precyzuje, czy atrybuty te powinny być
  również zerowane, kiedy to użytkownik root wywołuje
  funkcję 
chown; zachowanie Linuksa w tym wypadku zależy od
  wersji jądra. W przypadku pliku, który nie ma praw uruchamiawania
  dla grupy (z wyzerowanym bitem S_IXGRP), bit S_ISGID oznacza obowiązkowe
  blokowanie i nie jest zerowany przez 
chown.
 
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 
chown to:
 
  - EPERM
 
  - Efektywny UID nie odpowiada właścicielowi pliku i
      nie jest zerem albo owner lub group zostały podane
      nieprawidłowo.
 
  - 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.
 
Ogólne błędy dla 
fchown to:
  - EBADF
 
  - Deskryptor pliku jest nieprawidłowy.
 
  - ENOENT
 
  - Zobacz wyżej.
 
  - EPERM
 
  - Zobacz wyżej.
 
  - EROFS
 
  - Zobacz wyżej.
 
  - EIO
 
  - Niskopoziomowy błąd we/wy podczas modyfikacji
      i-węzła.
 
UWAGI¶
W wersjach jądra Linuksa poniżej 2.1.81 (i różnych od
  2.1.46) 
chown nie podąża za dowiązaniami symbolicznymi.
  Od wersji 2.1.81 Linuksa 
chown podąża za dowiązaniami
  symbolicznymi, została także dodana nowa funkcja systemowa
  
lchown, która nie podąża za dowiązaniami
  symbolicznymi. Od wersji 2.1.86 Linuksa, ta nowa funkcja (mająca
  taką samą semantykę jak stare 
chown) ma taki sam numer
  funkcji, a 
chown otrzymała nowy numer.
Prototyp dla 
fchown jest dostępny jedynie, gdy zdefiniowane jest
  
_BSD_SOURCE (bezpośrednio, albo pośrednio - nie
  definiując _POSIX_SOURCE czy kompilując z włączoną
  flagą -ansi).
ZGODNE Z¶
Funkcja 
chown jest zgodna z SVr4, SVID, POSIX, X/OPEN. Wersja 4.4BSD
  może być używana tylko przez superużytkownika (to znaczy
  normalni użytkownicy nie mogą "podarować" nikomu
  plików). SVr4 dokumentuje błędy EINVAL, EINTR, ENOLINK i
  EMULTIHOP, lecz nie dokumentuje ENOMEM. POSIX.1 nie dokumentuje
  błędów ENOMEM i ELOOP.
Funkcja 
fchown jest zgodna z 4.4BSD oraz SVr4. SVr4 dokumentuje dodatkowe
  błędy EINVAL, EIO, EINTR i ENOLINK.
OGRANICZENIA¶
Semantyka 
chown() jest pogwałcona na systemach plików NFS, z
  włączonym mapowaniem UID. Dodatkowo, semantyka wszystkich
  wywołań systemowych, które uzyskują dostęp do
  zawartości plików jest dla NFS pogwałcona, bo 
chown()
  może spowodować natychmiastowe unieważnienie dostępu do
  już otwartych plików. Buforowanie po stronie klienta może
  spowodować opóźnienie możliwości uzyskania
  dostępu do pliku przez użytkowników innych stacji klienckich w
  stosunku do chwili dokonania zmiany właściciela
  umożliwiającej ten dostęp.
ZOBACZ TAKŻE¶
chmod(2), 
flock(2)
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
  Tłumaczenia Manuali i 
może nie być aktualne. W razie
  zauważenia różnic między powyższym opisem a
  rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
  zapoznanie się z oryginalną (angielską) wersją strony
  podręcznika za pomocą polecenia:
  
  - man --locale=C 2 chown
 
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
  znaleźć pod adresem
  
http://sourceforge.net/projects/manpages-pl/.