chroot(2) System Calls Manual chroot(2) NUME chroot - schimba directorul radacina BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int chroot(const char *ruta); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): chroot(): Incepand cu glibc 2.2.2: _XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L) || /* Incepand cu glibc 2.20: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE Inainte de glibc 2.2.2: nimic DESCRIERE chroot() schimba directorul radacina al procesului apelant in cel specificat in ruta. Acest director va fi utilizat pentru numele de ruta care incep cu /. Directorul radacina este motenit de toi copiii procesului apelant. Numai un proces privilegiat (Linux: unul cu capacitatea CAP_SYS_CHROOT in spaiul de nume al utilizatorului) poate apela chroot(). Acest apel modifica un ingredient in procesul de rezolvare a numelui de ruta i nu face nimic altceva. In special, nu este destinat sa fie utilizat in niciun fel de scop de securitate, nici pentru a face o ,,cutie de nisip" completa a unui proces, nici pentru a restriciona apelurile de sistem ale sistemului de fiiere. In trecut, chroot() a fost utilizat de catre demoni pentru a se restriciona inainte de a transmite rutele de acces furnizate de utilizatori care nu prezinta incredere la apelurile de sistem, cum ar fi open(2). Cu toate acestea, daca un dosar este mutat in afara directorului chroot, un atacator poate exploata acest lucru pentru a iei i din directorul chroot. Cel mai simplu mod de a face acest lucru este sa faca chdir(2) la directorul care urmeaza sa fie mutat, sa atepte ca acesta sa fie mutat, apoi sa deschida o ruta precum ,,../../../etc/passwd". O varianta puin mai complicata funcioneaza, de asemenea, in anumite circumstane, daca chdir(2) nu este permis. Daca un demon permite specificarea unui ,,director chroot", aceasta inseamna, de obicei, ca daca dorii sa impiedicai utilizatorii de la distana sa acceseze fiiere din afara directorului chroot, trebuie sa va asigurai ca dosarele nu sunt niciodata mutate in afara acestuia. Acest apel nu modifica directorul de lucru curent, astfel incat, dupa apel, ,,." poate fi in afara arborelui cu radacina ,,/".In special, superutilizatorul poate scapa dintr-o ,,inchisoare chroot" facand: mkdir foo; chroot foo; cd .. Acest apel nu inchide descriptorii de fiiere deschise, iar astfel de descriptori de fiiere pot permite accesul la fiiere din afara arborelui chroot. VALOAREA RETURNATA In caz de succes, se returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE In funcie de sistemul de fiiere, pot fi returnate i alte erori. Cele mai generale erori sunt enumerate mai jos: EACCES Permisul de cautare este refuzat pentru o componenta a prefixului rutei; (a se vedea, de asemenea, path_resolution(7).) EFAULT ruta indica in afara spaiului de adrese accesibil. EIO A aparut o eroare de In/Ie. ELOOP S-au intalnit prea multe legaturi simbolice in rezolvarea rutei. ENAMETOOLONG ruta este prea lunga. ENOENT Fiierul nu exista. ENOMEM Nu a fost disponibila suficienta memorie pentru nucleu. ENOTDIR O componenta a rutei nu este un director. EPERM Apelantul nu are privilegii suficiente. STANDARDE Niciunul. ISTORIC SVr4, 4.4BSD, SUSv2 ( marcata ca ,,LEGACY"). Aceasta funcie nu face parte din POSIX.1-2001. NOTE Un proces-copil creat prin fork(2) motenete directorul radacina al parintelui sau. Directorul radacina este lasat neschimbat de execve(2). Legatura simbolica magica, /proc/pid/root, poate fi utilizata pentru a descoperi directorul radacina al unui proces; a se vedea proc(5) pentru detalii. FreeBSD are un apel de sistem jail() mai puternic. CONSULTAI I chroot(1), chdir(2), pivot_root(2), path_resolution(7), switch_root(8) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 chroot(2)