CHROOT(2)

NAZWA
chroot - zmiana katalogu głównego

SKŁADNIA
#include <unistd.h>

int chroot(const char *path);

OPIS
Uwaga! To tłumaczenie może być nieaktualne!

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)

INFORMACJE O TŁUMACZENIU
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 chroot

Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.