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