Comanda chroot pe un sistem de tip UNIX schimbă în mod aparent directorul root pentru procesul curent și pentru toate procesele derivate din acesta. Procesul nu poate accesa fișiere în afara directorului root asignat. Uneori, acest director setat cu chroot mai poartă și numele de chroot jail (închisoare).

Comanda chroot a fost introdusă în UNIX Versiunea 7, și a fost adăugată în BSD în 18 martie 1982 de Bill Joy pentru a testa sistemul de instalare și de build din BSD. Sub Linux, chroot este implementat în pachetul GNU coreutils.

Pe lângă comandă, paginile de manual mai documentează și o funcție de sistem chroot(2). Funcția schimbă directorul root pentru procesul care o apelează. Prototipul funcție este următorul:

#include <unistd.h>

int chroot(const char *path);

Sintaxă

[modificare | modificare sursă]
chroot [OPTION] NEWROOT [COMMAND [ARG]...]

NEWROOT desemnează noul director root, în timp ce COMAND [ARG]... desemnează o comandă specifică care să fie rulată de chroot. Dacă comanda nu este specificată, chroot este aplicat procesului curent (în cele mai multe cazuri sesiunea shell curentă).

Dintre opțiunile posibile amintim

--userspec=USER[:GROUP] - implicit, procesul este rulat de utilizatorul curent; utilizatorul poate fi schimbat cu această opțiune
--groups=GROUPS - grupul poate fi și el schimbat


Utilizare

[modificare | modificare sursă]

Comanda chroot poate fi utilizată pentru a crea o copie virtuală a sistemului de operare. Aceasta poate fi utilizată pentru:

Testare și dezvoltare
Un mediu de test poate fi setat cu chroot, evitându-se astfel rularea testului pe un sistem aflat deja în producție.
Controlul dependințelor
chroot este o modalitate foarte bună de control al dependințelor dintre diferite module software aflate în dezvoltare.
Compatibilitate
Uneori este nevoie să rulăm software mai vechi care necesită versiuni mai vechi ale unor biblioteci. Un mediu chroot este ideal pentru rularea acestui software.
Recuperare
Sisteme care nu mai pot fi pornite de pe hard disc, se pot uneori porni rapid într-un mediu chroot plecând de la un Live CD sau alt mediu de pornire.
Separarea privilegiilor
Programe care în mod potențial constituie o problemă de securitate se pot rula într-un mediu chroot. Se aplică în general serverelor.


Limitări

[modificare | modificare sursă]

Unele sistem UNIX extind sistemul chroot pentru a depăși aceste limitări. Termenul folosit pentru a descrie aceaste extensii este virtualizare la nivel de sistem de operare (în engleză operating system-level virtualization). Exemple:

Aplicații grafice rulate în chroot

[modificare | modificare sursă]

Unele aplicații grafice pot fi rulate într-un mediu chroot[1][2]. Modalități de rulare:


Aplicații unde chroot este utilizat

[modificare | modificare sursă]


Referințe

[modificare | modificare sursă]
  1. ^ Cum sa rulezi aplicatii in Chroot (în engleză), Mandriva.com, Arhivat din original în , accesat în  
  2. ^ „copie arhivă”. Arhivat din original la . Accesat în . 
  3. ^ „sshd_config(5) manual page”. . Accesat în . 


Legături externe

[modificare | modificare sursă]


 v  d  m  Programe în linia de comandă pentru Unix (mai multe)
Management de fișiere: cat | cd | chmod | chown | chgrp | cksum | cmp | cp | du | df | file | fsck | ln | ls | lsof | mkdir | mount | mv | pwd | rm | rmdir | split | touch
Management de procese: at | chroot | cron | exit | kill | killall | nice | pgrep | pidof | pkill | ps | pstree | sleep | time | top | wait
Management utilizator/mediu: env | finger | id | mesg | passwd | su | sudo | uname | uptime | w | wall | who | whoami | write
Procesare text: awk | comm | cut | ed | ex | fmt | head | iconv | join | less | more | paste | sed | sort | tac | tail | tr | uniq | wc | xargs
Programare Shell: basename | echo | expr | false | printf | test | true | unset Imprimare:
lp
Communicații:
inetd | netstat | ping | rlogin | traceroute
Căutare:
find | grep | strings
Diverse:
banner | bc | cal | dd | man | size | yes