GNU/Linux >> Linux Esercitazione >  >> Linux

Che cos'è chroot jail e come usarlo?

Introduzione

Il termine prigione chroot risale al 1992 ed è usato frequentemente oggi. Ma cosa significa questo termine e a cosa serve questa operazione?

In questo tutorial, tratteremo le nozioni di base sull'utilizzo delle chroot jail e ti mostreremo come impostarne una.

Prerequisiti

  • Un sistema che esegue un sistema operativo Linux o Unix
  • Un account utente con privilegi a livello di sudo
  • Accesso al terminale/riga di comando

Cos'è chroot jail?

Un chroot (abbreviazione di cambia radice ) è un'operazione Unix che cambia la directory radice apparente in quella specificata dall'utente.

Qualsiasi processo eseguito dopo un'operazione chroot ha accesso solo alla directory root appena definita e alle sue sottodirectory. Questa operazione è colloquialmente nota come prigione chroot poiché questi processi non possono leggere o scrivere all'esterno della nuova directory principale.

A cosa serve chroot jail?

Croot jail viene utilizzato per creare una sandbox limitata in cui eseguire un processo. Ciò significa che un processo non può modificare in modo dannoso i dati al di fuori dell'albero di directory prescritto.

Un altro uso delle jail chroot è come sostituto delle macchine virtuali. Questo metodo è chiamato virtualizzazione a livello di kernel e richiede meno risorse rispetto alle macchine virtuali. Questa operazione consente agli utenti di creare più istanze isolate sullo stesso sistema.

Come usare chroot jail

Questo esempio ti guida attraverso la creazione e la configurazione di chroot jail in modo che possa eseguire bash e ls comandi.

Segui questi passaggi:

1. Crea una nuova directory chiamata chroot_jail :

mkdir chroot_jail

Se proviamo a chroot nella nuova directory, otteniamo il seguente output:

Devi abilitare il bash comando prima di poter chroot nella nuova directory. Ciò richiede la copia del file di comando e di tutte le librerie associate nella nuova directory principale.

2. Crea un nuovo albero di sottodirectory all'interno di chroot_jail :

mkdir -p chroot_jail/bin chroot_jail/lib64/x86_64-linux-gnu chroot_jail/lib/x86_64-linux-gnu

Queste sottodirectory memorizzeranno tutti gli elementi necessari di bash e ls comandi.

3. Utilizzando il cp comando con il which il comando consente di copiare bash e ls comandi senza specificare il percorso da cui stai copiando.

Per farlo, usa:

cp $(which ls) chroot_jail/bin/
cp $(which bash) chroot_jail/bin/

4. Per bash e ls per lavorare nella nuova cartella principale, aggiungi tutte le librerie associate a chroot_jail/libraries . Usa il ldd comando per scoprire quali librerie sono associate a quale comando:

ldd $(which bash)
ldd $(which ls)

5. Copia le librerie appropriate in chroot_jail sottodirectory lib e lib64 .

Per il bash comando:

cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/

Per i ls comando:

cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/

6. Usa il chroot comando per cambiare la radice in chroot_jail directory:

sudo chroot chroot_jail

Usa ls comando per elencare tutti i file e le directory nel nuovo albero delle directory radice:

ls -R

7. Una volta che hai finito di usare la nuova cartella principale, esci dalla shell:

exit

Linux
  1. Che cos'è un comando Chown in Linux e come usarlo

  2. Che cos'è un comando cURL e come utilizzarlo?

  3. Chroot "prigione" - Che cos'è e come usarlo?

  4. Che cos'è Build-Essential-Ubuntu, come installarlo e usarlo?

  5. Che cos'è un file dtb u-Boot e come si usa (BeagleBoard xM)?

Che cos'è EFS (Elastic File System) in AWS e come utilizzarlo

Che cos'è Terraform e come installarlo e utilizzarlo su AWS EC2

Che cosa sono i contenitori multi-account di Firefox? Perché e come usarlo?

Cos'è EasyApache e come si usa?

Che cos'è Docker Compose e come lo usi?

Cos'è il PPA in Ubuntu Linux e come li uso