close

Chroot

Vai alla navigazione Vai alla ricerca

chroot nei sistemi operativi derivati ​​da Unix è un'operazione che invoca un processo, modificando la directory radice del sistema per esso e per i suoi figli. "chroot" può riferirsi alla chiamata di sistema chroot(2) o al programma eseguibile chroot(8) . Comunemente, l'ambiente virtuale creato dal chroot dalla nuova radice di sistema è noto come "gabbia chroot".

Il sistema chroot è stato introdotto da Bill Joy il 18 marzo 1982 ( 17 mesi prima del rilascio di BSD 4.2 ) per testare il suo sistema di installazione e build.

L'uso di "chroot" per richiamare un processo impedirà al processo e ai suoi processi figlio di accedere a qualsiasi file sopra la nuova directory radice per nome. Questo è spesso inteso come un dispositivo di sicurezza, in quanto crea teoricamente una zona sicura per eseguire un programma di cui non è attendibile, non testato o che in qualche modo può mostrare un comportamento pericoloso per l'integrità del sistema. Tuttavia, va notato che le jail chroot non sono sicure come altri tipi di jail o virtualizzazione .

Poiché i programmi si aspettano di trovare il loro spazio di archiviazione, i file di configurazione o le librerie di collegamento dinamico , tra l'altro, in determinati luoghi, l'impostazione di una jail chroot implica anche l'inclusione di tali risorse al suo interno.

I programmi possono prendere descrittori di file aperti (se file fisici, pipe o connessioni di rete) nella jail, il che può semplificare la progettazione rendendo superfluo lasciare file di lavoro all'interno della directory chroot. Funziona anche come un semplice sistema di capacità , in cui al programma viene fornito un accesso esplicito a risorse chroot esterne in base ai descrittori che può contenere all'interno.

Usi

Le jail Chroot vengono utilizzate per creare e mantenere una copia virtuale separata del sistema operativo in una directory del sistema operativo. Questo può essere utile per:

  • Test e sviluppo: è possibile creare un'area di test per un programma quando è rischioso utilizzare un sistema direttamente in produzione.
  • Controllo delle dipendenze: i programmi possono essere sviluppati , compilati e testati solo con le dipendenze previste. Ciò può impedire alcune forme di collegamento corrotto che si verificano quando gli sviluppatori creano progetti con diverse librerie installate.
  • Compatibilità: il software legacy o il software che utilizza un'interfaccia binaria dell'applicazione diversa a volte deve essere eseguito separatamente, poiché le librerie o i file di dati di supporto potrebbero altrimenti entrare in conflitto nei nomi o nei collegamenti con il sistema del contenitore della gabbia.

Riferimenti

McGrath, Roland . "Pagine 2 e 8 del manuale del sistema chroot".

Collegamenti esterni