Come utilizzare il guscio limitato per limitare ciò che un utente Linux può fare

Mar 25, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock

Un guscio limitato limita ciò che un account utente può fare su Linux. Un utente limitato non può cambiare la loro directory e tu controlli quali comandi hanno accesso. Ecco come impostare un guscio limitato su Linux.

Groups ristretti

Un guscio limitato non è un guscio diverso. È una modalità diversa di una shell standard . Il Basamento , Korn. , Pesce e altri gusci possono essere avviati in modalità shell limit. Usereremo Bash in questo articolo, ma gli stessi principi si applicano agli altri conchiglie.

Perché i gusci limitatiti sono solo un altro modo per utilizzare il tuo guscio standard, sono facili da configurare. Non c'è niente da installare e sono disponibili ovunque sia Linux.

Anche i gusci limitatiti possono essere applicati anche agli script. Ciò garantisce che qualsiasi danno possa causare se sono stati scritti in modo errato è limitato ai confini del loro mondo ristretto e che non hanno accesso a tutto il tuo computer.

Sii consapevole, però, che i gusci limitati non sono completamente a prova di fuga. Qualcuno con abbastanza conoscenza può sfuggire a un guscio limitato. Sono fantastici per mettere i confini sicuri su un utente casuale, ma non fare affidamento su conchiglie ristrette per qualsiasi sicurezza del mondo reale su un sistema di produzione.

IMPARENTATO: Qual è la differenza tra Bash, Zsh e altri gusci Linux?

Bash limitato

Quando esegui Bash come guscio limitato, l'utente ha alcune funzionalità rimosse da loro. Nello specifico, l'utente non può :

  • Utilizzo cd per cambiare la directory di lavoro.
  • Cambia i valori del $ Path. , $ Shell. , $ Bash_env. , o $ Env. Variabili ambientali (ma possono leggere i valori correnti).
  • Leggere o cambiare $ Shellopts. Opzioni ambientali della conchiglia.
  • Reindirizzare l'output di un comando.
  • Invocare comandi che richiedono un percorso per localizzarli. Cioè, non puoi emettere un comando che ha una o più barre avanti " / " dentro.
  • Invocare esecuzione sostituire un processo diverso per il guscio.
  • Utilizzare una qualsiasi delle caratteristiche limitate in uno script.

Puoi invocare un guscio di bash limitato usando il -R (limitato) opzione. Tenere a fare un semplice compito come cambiare la directory di lavoro è vietato. Un messaggio Terse te lo dice cd è limitato.

 Bash -r 
 Documenti CD 

Il guscio di bash può anche rilevare quando è stato invocato usando "rbash" invece di "bash". Questo lo fa iniziare anche come un guscio limitato. Ciò fornisce un modo conveniente per impostare il shell predefinito per un determinato utente, che useremo presto.

Se usiamo il dove si trova comando su Ubuntu per cercare il rbash. I file, vedremo che l'eseguibile è nella directory "usr / bin". La pagina Man è in directory "/ usr / share / man / man1".

Usando il ls. comando con il. -L. (lungo) l'opzione rivela che rbash. è in realtà un collegamento simbolico a basamento .

 dove rbash 
 LS -L / USR / BIN / RBASH 

Su Manjaro e Fedora, il rbash. Il collegamento simbolico doveva essere creato. Questo funziona su entrambe le distribuzioni:

 dove rbash 
 sudo ln -s / bin / bash / bin / rbash 
 dove rbash 

La seconda volta che usiamo il dove si trova comando, trova rbash. nella directory "/ usr / bin".

Limitando un utente.

Facciamo Crea un nuovo account utente chiamato "minnie". Metteremo il loro guscio per essere il guscio limitato usando il -S (shell) opzione del USERADD. comando. Bene anche Imposta la password dell'account usando il passwd. comando e creeremo una cartella iniziale per loro.

Il -P bandiera (genitori) nel mkdir. Comando dice mkdir. Per creare la directory di destinazione e tutte le directory genitore di cui ha bisogno per creare. Quindi creando la directory "/ home / minnie / bin", creiamo allo stesso tempo la directory "/ home / minnie" allo stesso tempo.

 sudo useradd minnie -s / bin / rbash 
 sudo passwd minnie 
 sudo mkdir -p / home / minnie / bin 

Quando Minnie accede, sarà in esecuzione in un guscio limitato.

 CD 

Non può richiamare i comandi che devono includere una barra in avanti " / ":

 / usr / bin / ping 

Tuttavia, può ancora eseguire comandi che si trovano nel percorso.

 Ping 

Questo non è il comportamento che potresti aspettarti, e certamente non è quello che vogliamo. Per stringere ulteriormente le restrizioni, dobbiamo cambiare il percorso che il guscio di Minnie utilizzerà per cercare comandi.

Stringendo le restrizioni

Quando abbiamo creato la directory home di Minnie "/ Home / Minnie", abbiamo anche creato una directory "/ home / minnie / bin". È qui che entra in gioco quella directory.

Stiamo andando a modificare il file ".bash_profile" di Minnie e impostare il suo percorso per puntare solo a tale directory. Limiteremo anche il file ".bash_profile" di Minnie in modo che solo root possa modificarlo. Ciò significa che nessun altro utente può modificare quel file e cambiare il suo percorso.

 sudo gedit /home/minnie/.bash_profile

O Modifica il "percorso =" esistente o aggiungere la seguente riga:

 percorso = $ home / bin 

Salva il file. Bene cambia il proprietario del file per root usando il chown comando e. Modificare le autorizzazioni del file usando il chmod. comando. Solo l'utente root sarà in grado di modificare il file.

 Sudo chown root: root /home/minnie/.bash_profile
 sudo chmod 755 /home/minnie/.bash_profile
 ls -l /home/minnie/.bash_profile

La prossima volta che l'utente ha registrato Minnie, il suo percorso punta a una singola cartella.

Il nostro utente limitato Minnie può usare solo comandi integrati Bash come eco , alias , e disconnettersi . Non può nemmeno usare ls. !

 LS 

Avremo landogna di allentare il nostro Strunglinghold un po 'se vogliamo che siano in grado di fare qualcosa di utile. Creeremo alcuni collegamenti simbolici dalla directory "bin" di Minnie ai comandi che vogliamo che Minnie sia in grado di utilizzare.

 sudo ln -s / bin / ls / home / minnie / bin 
 sudo ln -s / bin / top / home / minnie / bin 
 sudo ln -s / bin / uptime / home / minnie / bin 
 sudo ln -s / bin / mignolo / home / minnie / bin 

Quando Minnie successivo si accede, scoprirà che può usare i comandi integrati del bash, oltre a quei comandi che sono stati collegati.

 LS 
 Pinky Dave 
 Uptime 

Limitando gli utenti esistenti

Abbiamo creato Minnie come nuovo utente. Per cambia la shell di un esistente utente, possiamo usare il -S (shell) opzione del usermod. comando.

 sudo usermod -s / bin / rbash mary 

Puoi usare il meno Comando sul file "/ etc / passwd" per vedere rapidamente quale shell è impostata come shell predefinita dell'utente.

 Meno / etc / passwd 

Possiamo vedere che l'utente Mary utilizzerà il guscio limitato quando si registra successivamente.

Ricorda di applicare le altre modifiche per limitare il loro $ Path. Variabile di ambiente e per impostare i comandi che si desidera che l'utente Mary sia in grado di eseguire.

Limitando gli script

Un utente regolare e illimitato può avviare script che vengono eseguiti in un guscio limitato. Copia le seguenti linee e incollali in un editor. Salva il file come "limitato.sh" e chiudi l'editor.

 #! / Bin / Bash

# Script inizia nel normale shell bash
echo "## in modalità illimitata! ##"

eco
Echo "Directory corrente:` PWD`
echo "Modifica della directory"
CD / USR / Condividi
echo "Ora nella directory:` pwd` "
echo "Modifica della home directory"
cd ~.
echo "Ora nella directory:` pwd` "

# Impostazione della modalità limitata
set -R.

eco
echo "## in modalità limitata! ##"

eco
Echo "Directory corrente:` PWD`
Echo "Modifica della directory a / home /"
cd / home.
echo "ancora nella directory:` pwd` "

eco
echo "cercando di avviare un altro guscio"
/ bin / bash

eco
echo "cercando di reindirizzare il comando output"
LS -L $ Home & GT; my_files.txt.
gatto my_files.txt.
eco

Esci 0 

Dobbiamo usare il chmod. comando con il. + X. (Esegui) Bandiera per creare lo script eseguibile.

 CHMOD + X limitato.sh 

La prima parte dello script funziona in un guscio normale.

 ./ limitato.sh 

La seconda porzione dello script: il bit dopo la riga "Set -R" funziona in una guscio limitato.

Nessuna delle azioni tentata ha successo nella porzione limitata della sceneggiatura.

È possibile effettuare un intero script per funzionare in un guscio limitato aggiungendo -R alla prima riga:

! # / Bin / bash -r 

Ricorda Houdini.

I conchiglie ristretti sono utili, ma non completamente infallibili. Un utente sufficientemente esperto potrebbe essere in grado di sfuggirli. Ma se usato giudiziosamente, sono un modo utile per stabilire un insieme di limitazioni per un particolare account.


Linux - Articoli più popolari

Come nascondere tutte le icone del desktop su Mac

Linux Jun 23, 2025

Krisda / Shutterstock. Il tuo Mac Desktop è un casino? Non voglio davvero organizzare tutto? Non preoccuparti, puoi utilizzare un comando terminale per nascon..


Le 6 migliori distros Linux leggero

Linux Jul 27, 2025

3DMI / Shutterstock.com. Se il tuo computer Windows o Mac è vecchio e lottando per tenere il passo, l'installazione di Linux può dargli un nuovo locazione di..


Come configurare o disabilitare le notifiche di aggiornamento della menta Linux

Linux Jul 9, 2025

Hai abbastanza delle fastidiose notifiche di aggiornamento di Linux Mint? O forse sei così preoccupato di stare aggiornato che vuoi vederli ancora di più? Ad ogni modo, regolare le notif..


Come Esci dal tuo Mac Utilizzo di Terminal

Linux Aug 8, 2025

Apple rende facile disconnettersi dal tuo Mac con l'opzione nella barra dei menu del desktop. Ma ci sono anche un paio di comandi che puoi usare per disconnettersi usando il terminale, c..


Novità in GNOME 41?

Linux Sep 16, 2025

Ambiente desktop Linux. Gnome 41 è stato rilasciato il 22 settembre 2021. Venendo caldo sui talloni dei cambiamenti del flusso di lavoro del paradigma di Gnome 40, GNOME 41 f..


Quali sono gli inconvenienti di passare a Linux?

Linux Oct 27, 2025

Larry Ewing e GIMP Gli evangelisti di Linux (come me) sono veloci per indicare i numerosi vantaggi di passare da Windows e MacOS. Ma nessun sistema operativo..


KDE Connect è finalmente arrivato a iPhone

Linux Oct 26, 2025

KDE. Se stai cercando un modo semplice per far giocare il tuo iPhone con il tuo Desktop KDE. , oggi è il tuo giorno fortunato, come KDE Connect è final..


Come disattivare un PC Ubuntu

Linux Oct 12, 2025

Come tutti i personal computer, un PC che esegue il Ubuntu. Il sistema operativo desktop deve essere disattivato di tanto in tanto. La chiusura di Ubuntu è facile e hai diversi..


Categorie