GNU/Linux >> Linux Esercitazione >  >> Linux

Una guida pratica per il comando chroot in Linux

A volte, potrebbe essere necessario isolare un processo da altri processi in esecuzione sul sistema. Possiamo farlo con l'uso del comando chroot in Linux.

In questo tutorial, ti mostreremo cos'è il comando chroot e come puoi utilizzare il comando per creare una jail chroot e intrappolare un utente o un gruppo in un ambiente isolato.

Capire il comando chroot in Linux

Il comando chroot è essenziale nei sistemi Linux. Ti aiuta a cambiare la directory principale di un processo insieme ai suoi processi figlio. Quando creiamo una directory radice falsa per un utente o un gruppo, perde l'accesso alla directory radice vera.

Quindi, l'utente o il gruppo è ora isolato dal resto del nostro sistema. Questo può avere molti usi, come i seguenti:

  • Crea un ambiente di test per lo sviluppo e il test del software.
  • Inizia la reinstallazione dei file del bootloader sul tuo sistema
  • Esegui software che potrebbe essere decrepitato
  • Migliora la sicurezza utilizzando un meccanismo di schermatura

Il comando chroot crea essenzialmente un ambiente virtuale. La sua funzione è simile a una macchina virtuale, ma non richiede di dedicare risorse dedicate per il chroot jail.

L'ambiente virtuale condivide tutto il kernel con il sistema host.

Sintassi del comando chroot

Il comando chroot in Linux ha la seguente sintassi.

chroot [-OPTION] [PATH FOR NEW ROOT] [PATH FOR SERVER]

L'unico parametro necessario per eseguire un comando chroot è il percorso della nuova directory radice. Tuttavia, puoi utilizzare le opzioni disponibili nel comando chroot per ottenere i risultati desiderati.

Ecco le opzioni a tua disposizione quando usi il comando chroot in Linux.

  • –userspec=USER[:GRUPPO] – Utilizzato per definire l'utente o il gruppo su cui desideriamo utilizzare il comando chroot. Possiamo specificare il gruppo o l'utente che desideriamo utilizzare per nome o ID
  • –groups=G_List – Utilizzato per specificare i gruppi supplementari che desideriamo utilizzare come G1, G2... Gn
  • — aiuto – Ti mostra una schermata di aiuto ed esce
  • –versione – Visualizza i dati della versione ed esce

Creazione di un comando chroot jail

Ora che abbiamo compreso il comando chroot e la sua sintassi, è tempo di usarlo. Per mostrarti come è fatto, creeremo una chroot jail.

Una prigione chroot è un ambiente virtuale creato modificando la directory principale di un utente o gruppo in una nuova directory. Questa nuova directory funge da directory radice falsa per la nostra prigione chroot.

Esaminiamo i passaggi che devi eseguire per utilizzare il comando chroot in Linux per creare una jail chroot.

1. Crea una directory

Per prima cosa, inizieremo creando una directory radice falsa in /home/chroot_jail usando il comando mkdir.

mkdir $home/chroot_jail

Questo creerà una directory all'indirizzo dato che useremo per la nostra prigione chroot. Tuttavia, prima di lasciare che il comando chroot faccia il suo lavoro, dobbiamo aggiungere i file richiesti alla nostra nuova directory.

2. Aggiungi le directory principali richieste

Inizieremo creando /bin, /lib e /lib64 nella nostra directory jail. Il comando per creare queste directory è riportato di seguito.

mkdir -p $home/chroot_jail/{bin,lib,lib64}

Come puoi notare, le directory che stiamo creando all'interno del nostro ambiente virtuale sono specificate tra parentesi graffe ('{}').

Ora useremo il comando cd per rendere chroot_jail la nostra nuova directory radice.

cd $home/chroot_jail

3. Sposta i file binari dei comandi consentiti

Stiamo creando un ambiente Linux minimalista per questo esempio. Usiamo i comandi bash, ls, rm e touch per far parte delle funzionalità del nostro ambiente virtuale.

Copia i binari dalla nostra directory root /bin nella directory /bin di chroot_jail. Lo facciamo usando il comando cp con il tag -v (verbose) in modo da poter vedere cosa viene copiato in un dato momento.

cp -v /bin/{bash,touch,ls,rm} $home/chroot_jail

Come puoi vedere, i binari che desideriamo copiare sono menzionati tra parentesi. I file dei binari forniti ora sono stati copiati nella nostra nuova directory jail chroot.

4. Risoluzione delle dipendenze dei comandi

Ma questi binari avranno dipendenze. Le dipendenze per bash possono essere trovate usando il comando ldd.

ldd /bin/bash

Ora useremo il comando cp per copiare attentamente le directory nel nostro chroot jail, una per una. Dovremmo assicurarci di copiare tutte le librerie delle dipendenze, altrimenti il ​​nostro chroot jail non funzionerà correttamente. Sostituisci la parte con le directory separate da virgole.

cp -v {<List dependencies here>} $home/chroot_jail/lib64

Ripeteremo questi passaggi per tutti i comandi che vogliamo consentire all'interno del chroot jail. Trova le librerie delle dipendenze e copiale nella directory chroot_jail.

5. Passaggio alla nuova directory principale

Ora, tutto ciò che ci resta da fare è cambiare la directory principale della nostra prigione chroot nella nuova directory falsa che abbiamo appena creato.

Per modificare la directory e specificare bash da eseguire come applicazione che eseguiamo come shell per il nostro ambiente virtualizzato, utilizziamo il comando seguente.

sudo chroot $home/chroot_jail/bin/bash

Potrebbe essere richiesto di inserire la password utente per continuare. In tal caso, inserisci la tua password utente e il comando verrà eseguito.

Se hai seguito correttamente tutti i passaggi, dovresti aspettarti di vedere un output simile al seguente sullo schermo.

Come puoi vedere nello screenshot, la versione 4.4 di bash è ora in esecuzione come shell per il nostro chroot jail.

Ora, il nostro ambiente Linux virtuale minimalista è stato creato ed è pronto per l'uso. Possiamo interagire con l'ambiente virtuale usando bash come un normale sistema Linux.

Conclusione

Il comando chroot in Linux è un comando semplice ma efficace nel set di strumenti di un utente Linux. La sua capacità di creare un ambiente virtualizzato, senza la necessità di alcun software di monitoraggio come vediamo con le macchine virtuali, lo rende un'alternativa leggera per questo uso.

Questo tutorial mirava ad aiutarti a capire cos'è chroot e poi mostrarti come costruire una semplice chroot jail. Se hai domande, feedback o suggerimenti, non esitare a contattarci nei commenti qui sotto.


Linux
  1. Una guida al terminale Linux per principianti

  2. 8 suggerimenti per la riga di comando di Linux

  3. Padroneggia il comando ls di Linux

  4. 8 esempi pratici del comando Xargs di Linux per principianti

  5. Esempi pratici del comando Unzip in Linux

12 Esempi pratici di In Command in Linux

25 Pratico comando mv in Linux per utenti quotidiani

I 50 esempi pratici del comando SED in Linux

5 Esempi pratici del comando Read in Linux

Il comando apt:una guida pratica all'uso

Pratici comandi Tee Linux e Unix per l'amministratore Linux