Manpages

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/.