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
CDPentru 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
executivpentru 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.