Debian

Come usare chroot in Debian 10

Come usare chroot in Debian 10
In un ambiente di test, spesso è necessario eseguire il sandbox di determinate applicazioni per evitare che danneggino o curinono il resto del sistema. Sono disponibili diversi strumenti per eseguire il sandboxing di un programma e impedire che influisca sul resto del sistema, come VirtualBox, VMware, Xen, KVM, ecc. Tuttavia, solo per una o poche applicazioni, il sandboxing di un intero sistema operativo non sembra pratico.

Per il sistema operativo Linux, è disponibile uno strumento, noto come chroot, che fornisce un modo più semplice e veloce per eseguire il sandboxing di un'applicazione. Con chroot, puoi installare e testare qualsiasi applicazione senza influenzare il resto del sistema.

Questo articolo spiegherà come usare chroot in Debian 10 Buster, insieme ad alcuni esempi. Per spiegazione, creeremo un ambiente chroot per bash e alcuni comandi, come i comandi "ls", "ip" e "pwd".

Cos'è chroot??

Lo strumento chroot è un comando in Linux che cambia la directory principale di un'applicazione in un'altra directory. I processi in esecuzione in questa nuova directory principale non possono accedere ai file al di fuori di essa. Quindi, isola le operazioni delle applicazioni dal resto del sistema.

Come funziona chroot??

Chroot funziona copiando l'applicazione e tutti i suoi eseguibili e dipendenze all'interno della directory principale alternativa. Quindi esegue l'applicazione da questa directory radice alternativa, facendo in modo che l'applicazione la consideri come la directory radice originale. La directory root è la directory più in alto nella gerarchia e nessuna applicazione può raggiungere un livello superiore a questa directory, quindi è così che chroot isola l'applicazione dal resto del sistema.

Casi d'uso

Sintassi

Quella che segue è la sintassi di base per il comando chroot:

$ chroot comando

Seguire i passaggi seguenti per utilizzare il comando chroot in Debian per configurare un ambiente chroot.

1. Crea una directory principale alternativa

Innanzitutto, crea una directory root alternativa da utilizzare per l'ambiente chroot.

$ sudo mkdir ~/new_root

Il comando precedente creerà il new_root directory sotto il Casa directory, che verrà utilizzata come directory principale nell'ambiente chroot.

2. Aggiungi directory essenziali

Crea le directory "bin", "lib" e "lib64" sotto il ~/new_root elenco:

$ sudo mkdir -p ~/new_root/bin,lib,lib64

3. Copia binari di programma

Tutto il necessario per eseguire un'applicazione nell'ambiente chroot deve essere nella directory root alternativa alternate. In questo articolo, creeremo un ambiente chroot per bash e alcuni comandi, inclusi i comandi "ls", "ip" e "pwd". Pertanto, copieremo i binari dal from /bidone directory all'alternativa ~/new_root/bin directory. Per individuare i binari dei comandi, utilizzare il comando which:

$ che bash ls ip pwd

Quindi, copia i binari dei comandi nel file ~/new_root/bin directory.

$ sudo cp -v /bin/bash,ls,ip,pwd  ~/new_root/bin

4. Copia le dipendenze del programma

Dovremo anche capire di quali dipendenze ha bisogno il nostro programma. Per prima cosa, dovremo trovare quali sono queste dipendenze, quindi le copieremo nel file ~/new_root/lib directory.

Copiare le dipendenze per bash

Innanzitutto, scopri le dipendenze per il programma bash:

$ ldd /bin/bash

Quindi, copia queste dipendenze nel file ~/new_root/lib directory.

$ cp -v /lib/x86_64-linux-gnu/libtinfo.così.6,libdl.così.2, libc.così.6 ~/new_root/lib

Per i file /lib64, copiali nel ~/new_root/lib64 directory.

$ cp -v /lib64/ld-linux-x86-64.così.2 ~/new_root/lib64

Copia le dipendenze per il comando ls

Innanzitutto, scopri le dipendenze per il comando ls:

$ ldd /bin/ls

Quindi, copia queste dipendenze nel file ~/new_root/lib directory.

$ sudo cp -v /lib/x86_64-linux-gnu/libselinux.così.1,libc.così.6,libpcre.così.3,
libdl.così.2, libpthread.così.0 /lib64/ld-linux-x86-64.così.2 ~/new_root/lib

Per i file /lib64, copiali nel ~/new_root/lib64 directory.

$ sudo cp -v /lib64/ld-linux-x86-64.così.2 ~/new_root/lib64

Copia le dipendenze per il comando ip

Innanzitutto, scopri le dipendenze per il comando ip:

$ ldd /bin/ip

Quindi, copia queste dipendenze nel file ~/new_root/lib directory.

$ cp -v /lib/x86_64-linux
gnu/libselinux.così.1, diffamazione.così.1,libmnl.così.0, libcap.così.2,libdl.così.2, libc.così.6,
libpcre.così.3,libz.così.1, libpthread.così.0 ~/new_root/lib

Per i file /lib64, copiali nel ~/new_root/lib64 directory.

$ sudo cp -v /lib64/ld-linux-x86-64.così.2 ~/new_root/lib64

Copia le dipendenze per il comando pwd

Innanzitutto, scopri le dipendenze per il comando pwd:

$ ldd /bin/pwd

Quindi, copia queste dipendenze nel file ~/new_root/lib directory.

$ sudo cp -v /lib/x86_64-linux-gnu/libc.così.6  ~/new_root/lib

Per i file /lib64, copiali nel ~/new_root/lib64 directory.

$ sudo cp -v /lib64/ld-linux-x86-64.così.2 ~/new_root/lib64

Per visualizzare tutte le directory nella directory principale alternativa, utilizzare il seguente comando:

$ ls -R

5. Passa alla directory principale alternativa

Ora siamo finalmente pronti per passare al nostro nuovo ambiente chroot. Per cambiare la directory root, esegui il seguente comando nella shell con i privilegi di root:

$ sudo chroot ~/new_root /bin/bash

Dove ~/new_root è la nostra directory principale alternativa e /bin/bash è l'applicazione che abbiamo usato per impostare l'ambiente chroot.

Dopo aver eseguito il comando sopra, vedrai che il prompt di bash è cambiato in bash-x.sì che nel nostro caso è bash-5.0 (dove 5.0 è il numero di versione bash).

Nota: potresti riscontrare il seguente errore dopo aver eseguito il comando chroot, come ho fatto io:

Se si verifica questo errore, verifica di aver aggiunto tutte le librerie e gli eseguibili relativi al programma richiesto nella nuova directory principale.

Dopo essere entrato nell'ambiente chroot, sarai in grado di accedere solo al file al suo interno. Prova a eseguire i comandi che hai impostato per il tuo ambiente chroot, inclusi alcuni comandi integrati. Puoi trovare i comandi incorporati eseguendo il Aiuto comando nella shell.

Puoi vedere che abbiamo provato i comandi "ls", "pw" e "ip" e tutti ci sono riusciti. Se eseguiamo qualsiasi comando diverso da questi tre comandi e dai comandi incorporati, il comando fallirà, poiché non lo abbiamo impostato per l'ambiente chroot. Come puoi vedere nello screenshot seguente, abbiamo provato a eseguire i comandi "touch", "ping" e "clear" e tutti hanno fallito.

6. Esci da chroot

Per uscire dall'ambiente chroot, usa il tasto Uscita comando.

Conclusione

In questo articolo, hai imparato cos'è chroot e come funziona in Linux. Questo articolo ti ha mostrato passo dopo passo come usare chroot in Debian 10 Buster per creare un ambiente chroot per bash e altri comandi. Ora dovresti sentirti a tuo agio usando il comando chroot per cambiare la directory principale di un processo e dei suoi sottoprocessi e isolarli dal resto del sistema.

I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...
Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...