Cum se utilizează carcasa restricționată pentru a limita ceea ce poate face un utilizator Linux

Mar 25, 2025
Linux
FatmAwati Achmad Zaenuri / Shutterstock

O coajă restricționată limitează ceea ce poate face un cont de utilizator pe Linux. Un utilizator restricționat nu poate schimba directorul și controlați ce comenzi au acces la acestea. Iată cum să configurați o coajă restrânsă pe Linux.

Shelluri restricționate

O coajă restrânsă nu este o coajă diferită. Este un mod diferit de o coajă standard . În Bash. , Korn. , Peşte , și alte cochilii pot fi inițiate în modul shell restricționat. Vom folosi bash în acest articol, dar aceleași principii se aplică celorlalte cochilii.

Deoarece cochilii restricționate sunt doar un alt mod de a utiliza coaja standard, sunt ușor de configurat. Nu este nimic de instalat și sunt disponibile oriunde este Linux.

Cojile restricționate pot fi aplicate și scripturilor. Acest lucru asigură că orice daune pe care le pot provoca dacă au fost scrise incorect se limitează la limitele lumii lor restrânse și că nu au acces la întregul computer.

Fiți conștienți, totuși, că cochilii restricționați nu sunt complet scăpați. Cineva cu cunoștințe suficiente poate scăpa de o coajă restrânsă. Ei sunt minunați pentru a pune granițe sigure pe un utilizator casual, dar nu se bazează pe cochilii restrânse pentru nici o securitate din lumea reală pe un sistem de producție.

LEGATE DE: Care este diferența dintre bash, zsh și alte cochilii Linux?

Bash Restricționat.

Când executați bash ca o coajă restrânsă, utilizatorul are unele capabilități eliminate de la ele. În mod specific, utilizatorul nu poti :

  • Utilizare CD Pentru a schimba directorul de lucru.
  • Schimbați valorile $ PATH. , $ Shell. , $ Bash_env. , Or. $ Env. Variabilele de mediu (dar pot citi valorile curente).
  • Citiți sau modificați $ Shelopts. Shell Opțiuni de mediu.
  • Redirecționați ieșirea unei comenzi.
  • Invocați comenzi care necesită o cale de a le localiza. Adică, nu puteți emite o comandă care are una sau mai multe feluri de scurgeri înainte " / "În ea.
  • Invoca executiv pentru a înlocui un proces diferit pentru cochilie.
  • Utilizați oricare dintre caracteristicile restricționate dintr-un script.

Puteți invoca o coajă de bash restricționată folosind -R. (restricționată). Încercarea de a face o sarcină simplă ca schimbarea directorului de lucru este interzisă. Un mesaj TERSE vă spune asta CD este restrictionat.

 Bash -r 
 Documente CD 

Cochilia de bash poate detecta, de asemenea, când a fost invocată folosind "rbash" în loc de "bash". Acest lucru îi determină să înceapă și ca o coajă restrânsă. Aceasta oferă o modalitate convenabilă de a seta shell-ul implicit pentru un anumit utilizator, pe care îl vom folosi în curând.

Dacă folosim unde este comanda pe ubuntu pentru a căuta Rbash. Fișiere, vom vedea că executabilul este în directorul "USR / BIN". Pagina omului este în directorul "/ USR / Share / Man / Man1".

Folosind. Ls. comanda cu. -l. (lung) dezvăluie acest lucru Rbash. este de fapt o legătură simbolică la Bash. .

 în care este rbash 
 Ls -l / usr / bin / rbash 

Pe Manjaro și Fedora, Rbash. Link-ul simbolic trebuia creat. Acest lucru funcționează pe ambele distribuții:

 în care este rbash 
 sudo ln -s / bin / bash / bin / rbash 
 în care este rbash 

A doua oară folosim unde este comandă, găsește Rbash. În directorul "/ usr / bin".

Restricționarea unui utilizator

Haideți Creați un cont de utilizator nou numit "Minnie". Vom seta cochilia ca să fie coaja restrânsă folosind -S. (Shell) opțiunea de Useradd. comanda. Bine, de asemenea Setați parola contului folosind. Passwd. Comanda, și vom crea un dosar de acasă pentru ei.

În -p. (părinți) Steagul în Mkdir. comanda spune Mkdir. Pentru a crea directorul țintă și orice director părinte care trebuie să creeze, de asemenea. Deci, prin crearea directorului "/ Home / Minnie / Bin", creăm în același timp directorul "/ Home / Minnie".

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

Când Minnie se conectează, ea va fi difuzată într-o coajă restrânsă.

 CD 

Ea nu poate invoca comenzi care trebuie să includă o slash înainte " / ":

 / usr / bin / ping 

Cu toate acestea, ea poate executa în continuare comenzi care se găsesc pe calea.

 Ping 

Nu este comportamentul pe care l-ai fi așteptat și cu siguranță nu este ceea ce vrem. Pentru a strânge mai mult restricțiile, trebuie să schimbăm calea pe care cochilia Minnie va folosi pentru a căuta comenzi.

Înăsprirea restricțiilor

Când am creat directorul de domiciliu al Minniei "/ Home / Minnie", am creat și un director "/ Home / Minnie / Bin". Acesta este locul în care acest director vine în joc.

Vom edita fișierul ".bash_profile" din Minnie și să-i stabilim calea spre punctul numai de directoare. De asemenea, vom restrânge fișierul ".bash_profile" al Minniei, astfel încât numai rădăcina să o editeze. Asta înseamnă că niciun alt utilizator nu poate edita acel fișier și să-și schimbe calea.

 sudo gedit /home/minnie/.bash_profile

Fie Editați "PATH =" existentă sau adăugați următoarea linie:

 PATH = $ HOME / BIN 

Salvați fișierul. Bine Schimbați proprietarul fișierului la rădăcină folosind chown. comenzi și Modificați permisiunile fișierelor folosind. chmod comanda. Numai utilizatorul rădăcină va putea edita fișierul.

 sudo chown rădăcină: root /home/minnie/.bash_profile
 sudo chmod 755 /home/minnie/.bash_profile
 LS -L /HOME/MINNIE/.BASH_PROFILE

Următorul utilizator al utilizatorului Minnie se jurnalează, calea ei indică un singur dosar.

Utilizatorul nostru restricționat Minnie poate folosi doar comenzi încorporate de bash cum ar fi ecou , alias , și Logout . Nici măcar nu poate folosi Ls. A!

 LS 

Va trebui să ne slăbăm puțin strangleh "dacă vrem ca ei să poată face ceva util deloc. Vom crea câteva link-uri simbolice de la directorul "bin" al lui Minnie's la comenzile pe care le dorim Minnie pentru a putea folosi.

 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 / pinky / home / minnie / bin 

Când Minnie următorul se conectează, ea va găsi că poate folosi comenzile încorporate Bash, plus aceste comenzi care au fost legate de.

 LS 
 Pinky Dave 
 Optime 

Restricționând utilizatorii existenți

Am creat Minnie ca utilizator nou. La Schimbați carcasa unui existent utilizator, putem folosi -S. (Shell) opțiunea de Usermod. comanda.

 sudo usermod -s / bin / rbash mary 

Puteți utiliza Mai puțin Comanda în fișierul "/ etc / passwd" pentru a vedea rapid ce Shell este setat ca Shell implicit al utilizatorului.

 mai puțin / etc / passwd 

Putem vedea că utilizatorul Mary va folosi cochilia restrânsă când urmărește următoarele jurnale.

Nu uitați să aplicați celelalte modificări pentru a le limitează $ PATH. Variabila de mediu și pentru a seta comenzile pe care doriți să le puteți executa pe utilizatorul Maria.

Restricționarea scripturilor

Un utilizator obișnuit, nerestricționat poate lansa scripturi care sunt executate într-o coajă restrânsă. Copiați următoarele linii și le lipiți într-un editor. Salvați fișierul ca "restricționat.sh" și închideți editorul.

 # / bin / bash

# scriptul începe în coajă normală de bash
Echo "## În modul nelimitat! ##"

ecou
Echo "Directorul curent:" PWD "
ECHO "Schimbarea directorului"
CD / USR / Share
Echo "Acum, în directorul:" PWD ""
ECHO "Schimbarea la directorul de acasă"
CD-uri
Echo "Acum, în directorul:" PWD ""

# Setarea modului restricționat
set -r.

ecou
Echo "## în modul restricționat! ##"

ecou
Echo "Directorul curent:" PWD "
ECHO "Schimbarea directorului la / Acasă /"
CD / Home.
Echo "încă în directorul:" PWD ""

ecou
Echo "Încercarea de a începe o altă coajă"
/ bin / bash

ecou
Echo "Încercarea de a redirecționa producția de comandă"
ls -l $ home & gt; my_files.txt.
cat my_files.txt.
ecou

Ieșire 0 

Trebuie să folosim chmod comanda cu. + X. (Execute) Steagul pentru a face executabilul scriptului.

 CHMOD + X Restricționat.Sh 

Prima parte a scriptului rulează într-o carcasă normală.

 ./ Restricționat.Sh 

A doua porțiune a scenariului-biți după linia "setată -R" funcționează într-o coajă restrânsă.

Niciuna dintre încercările de acțiuni nu reușește în partea restrânsă a scenariului.

Un întreg script poate fi făcut pentru a rula într-o carcasă restricționată adăugând -R. la prima linie:

! # / BIN / BASH -R 

Amintiți-vă Houdini.

Cojile restricționate sunt utile, dar nu sunt complet infailibile. Un utilizator suficient de calificat poate să le scape. Dar, atunci când este folosit în mod judicios, ele sunt o modalitate utilă de a stabili un set de limitări pentru un anumit cont.


Linux - Cele mai populare articole

Cum se utilizează parolele criptate în scripturile Bash

Linux Jun 30, 2025

FatmAwati Achmad Zaenuri / Shutterstock.com Dacă sunteți obligat să utilizați un script Linux pentru a vă conecta la o resursă protejată prin parolă, p..


Ce este nou în Debian 11 "Bullseye"

Linux Jul 22, 2025

Debian. , Progenitorul multor alte distribuții Linux, a făcut eliberarea 11 disponibilă în etapa de testare. Cântăriți virtuțile de modernizare sau sunteți doar curioș..


Cum se utilizează comanda FSCK pe Linux

Linux Aug 18, 2025

Pixza Studio / Shutterstock Toate datele noastre importante se află într-un sistem de fișiere de un singur tip sau altul, precum și probleme de sistem de f..


Gaming nativ pe Linux pot fi morți și asta e în regulă

Linux Sep 27, 2025

DC Studio / Shutterstock.com În Punte de aburi , anunțat în august 2021, are cercurile de jocuri Linux vorbind despre viitorul jocurilor pe Linux..


Se pare Linux 30: Cum un hobby proiect Cucerit lume

Linux Sep 17, 2025

Larry Ewing și Gimp Pe 17 septembrie 1991 , Linus Torvalds a lansat pentru prima dată kernel Linux (versiunea 0.01). Iată o scurtă privire la mo..


Ce este nou în GNOME 41?

Linux Sep 16, 2025

Linux Desktop Mediu Gnome. 41 a fost lansat pe 22 septembrie 2021. Venirea fierbinte pe călcâiul lui Gnome 40, schimbarea fluxului de lucru schimbării, Gnome 41 dă ceva de..


Care sunt dezavantajele de trecere la Linux?

Linux Oct 27, 2025

Larry Ewing și Gimp Linux Evangheliștii (ca mine) sunt rapizi să subliniez numeroasele beneficii ale trecerii de la Windows și MacOS. Dar nici un sistem ..


Acest nou laptop de jocuri Linux are specificațiile pentru a rula orice

Linux Oct 20, 2025

Juno Calculatoare Linux și jocurile încep să se unească mult mai târziu. În Punte de aburi este pe drum cu Linux instalat, iar Juno tocmai a anunțat u..


Categorii