Chroot
# Chroot

Il termine chroot (contrazione di change e root), in informatica ed in particolare nei sistemi operativi Unix e Unix-like, indica un'operazione che consiste nel cambiare la directory di riferimento dei processi che sono in esecuzione corrente e per i processi generati da questi ultimi (cosiddetti processi figlio).

## Descrizione e caratteristiche

Normalmente, le funzioni necessarie a mettere in pratica il chroot sono implementate direttamente nel kernel del sistema operativo.

È un metodo usato per isolare i limiti operativi di un'applicazione, ma non è stato concepito come metodo di sicurezza, sebbene alcuni sistemi, come FreeBSD, lo usino con alcune accortezze come tale. Il nome deriva dal termine informatico root (radice), che indica la directory principale del file system del sistema operativo (Filesystem Hierarchy Standard) in cui sono contenute tutte le altre directory.

Normalmente, un software può accedere a tutti i dischi e le risorse del sistema operativo, compatibilmente con i permessi; l'operazione di chroot consiste nell'eseguire il programma bloccato dentro una sottodirectory, permettendogli di accedere solo alle risorse di cui ha strettamente bisogno. La sottodirectory in questione viene anch'essa denominata chroot e deve contenere una copia (di solito un hard link) di tutti i file di sistema richiesti dal software. Nel caso di sistemi Unix, è necessaria anche una copia dei device file a cui il programma deve accedere.

Se un cracker riesce a prendere il controllo di un'applicazione, avrà tutti i privilegi associati all'applicazione e potrebbe essere in grado di compromettere la sicurezza dell'intero sistema, ad esempio, installando un rootkit. Al contrario, se il programma compromesso si trova in un chroot, dovrà prima uscire dal perimetro e solo dopo potrà apportare modifiche al sistema.

