Provided by: manpages-pl-dev_20051117-1_all bug

NAZWA

       chroot - zmiana katalogu głównego

SKŁADNIA

       #include <unistd.h>

       int chroot(const char *path);

OPIS

       chroot  zmienia  katalog  główny na katalog podany w path.  Ten katalog
       będzie używany do nazw ścieżek zaczynających się od /.  Katalog  główny
       jest dziedziczony przez wszystkie procesy potomne bieżącego procesu.

       Funkcję  chroot(2)  może  wywołać  tylko  proces  uprzywilejowany  (pod
       Linuksem: ten ze zdolnością CAP_SYS_CHROOT).

       Funkcja ta zmienia tylko składniki w procesie rozwiązywania nazw plików
       i nie robi nic poza tym.

       Funkcja  ta  nie  zmienia  bieżącego  katalogu roboczego, więc `.' może
       znajdować się poza  drzewem  zakorzenionym  w  `/'.   W  szczególności,
       superużytkownik  może uciec `uwięzienia w chroot' wykonując `mkdir foo;
       chroot foo; cd ..'.

       Funkcja  ta  nie  zamyka  otwartych  deskryptorów  plików,  więc  takie
       deskryptory   plików   mogą  zezwalać  na  dostęp  poza  nowym  drzewem
       zakorzenionym w `/'.

WARTOŚĆ ZWRACANA

       Po pomyślnym zakończeniu zwracane jest zero. w przypadku 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 to:

       EACCES Brak praw do przeszukiwania dla składowej ścieżki.  (Patrz także
              path_resolution(2)).

       EFAULT path wskazuje poza dostępną dla użytkownika przestrzeń adresową.

       EIO    Wystąpił błąd we/wy.

       ELOOP  Podczas  rozwiązywania  path  napotkano  zbyt   wiele   dowiązań
              symbolicznych.

       ENAMETOOLONG
              path jest zbyt długie.

       ENOENT Plik nie istnieje.

       ENOMEM Brak pamięci jądra.

       ENOTDIR
              Składowa ścieżki path nie jest katalogiem.

       EPERM  Efektywny UID nie jest zerem.

ZGODNE Z

       SVr4,  SVID,  4.4BSD, X/OPEN. Ta funkcja nie jest częścią POSIX.1. SVr4
       dokumentuje dodatkowe błędy EINTR,  ENOLINK  i  EMULTIHOP.  X/OPEN  nie
       dokumentuje  błędów EIO, ENOMEM i EFAULT.  Interfejs ten jest oznaczany
       jako spadek po X/OPEN.

UWAGI

       FreeBSD ma silniejszą funkcję systemową jail().

ZOBACZ TAKŻE

       chdir(2), path_resolution(2)