Ho sentito/letto molto sulla jail di chroot sotto Linux ma non l'ho mai usato (uso Fedora giorno per giorno), quindi cos'è una "prigione" di chroot? Quando e perché potrei usarlo/non usarlo e c'è qualcos'altro che dovrei sapere? Come farei per crearne uno?
Risposta accettata:
Una prigione chroot è un modo per isolare un processo ei suoi figli dal resto del sistema. Dovrebbe essere utilizzato solo per i processi che non vengono eseguiti come root, poiché gli utenti root possono evadere dalla prigione molto facilmente.
L'idea è di creare un albero di directory in cui copiare o collegare tutti i file di sistema necessari per l'esecuzione di un processo. Quindi usi chroot()
chiamata di sistema per modificare la directory principale in modo che sia alla base di questo nuovo albero e avviare il processo in esecuzione in quell'ambiente chroot. Dal momento che non può effettivamente fare riferimento a percorsi al di fuori della radice modificata, non può eseguire operazioni (lettura/scrittura ecc.) in modo dannoso su quelle posizioni.
Su Linux, l'uso di un bind mounts è un ottimo modo per popolare l'albero chroot. Usandolo, puoi inserire cartelle come /lib
e /usr/lib
pur non inserendo /usr
, Per esempio. Collega semplicemente gli alberi di directory che desideri alle directory che crei nella directory jail.