Hvordan bruke begrensede Shell til å begrense hva en Linux-bruker kan gjøre

Mar 25, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock

Et begrenset skall begrenser hva en brukerkonto kan gjøre på Linux. En begrenset bruker kan ikke endre katalogen, og du kontrollerer hvilke kommandoer de har tilgang til. Slik setter du opp et begrenset skall på Linux. [1. 3]

Begrensede skall

Et begrenset skall er ikke et annet skall. Det er en annen modus for et standard skall . De Bash. , Korn. , Fisk , og andre skall kan alle startes i begrenset shell-modus. Vi bruker Bash i denne artikkelen, men de samme prinsippene gjelder for de andre skallene. [1. 3]

Fordi begrensede skall er bare en annen måte å bruke standardskallet på, er de enkle å sette opp. Det er ingenting å installere, og de er tilgjengelige hvor Linux er. [1. 3]

Begrensede skall kan også brukes på skript. Det sikrer at eventuelle skader de kan forårsake hvis de har blitt skrevet feil, er begrenset til begrenset av deres begrensede verden, og at de ikke har tilgang til hele datamaskinen. [1. 3]

Vær imidlertid oppmerksom på at begrensede skall ikke er helt unnslippe. Noen med nok kunnskap kan unnslippe et begrenset skall. De er flotte for å sette trygge grenser på en uformell bruker, men ikke stole på begrensede skall for enhver sannhetssikkerhet på et produksjonssystem. [1. 3]

I SLEKT: Hva er forskjellen mellom Bash, ZSH og andre Linux Shells? [1. 3]

Begrenset bash.

Når du kjører bash som et begrenset skall, har brukeren noen muligheter fjernet fra dem. Spesielt bruker brukeren kan ikke : [1. 3]

  • Bruk CD. for å endre arbeidskatalogen.
  • Endre verdiene til $ Sti , $ Shell. , $ Bash_env. , eller $ Env. Miljøvariabler (men de kan lese dagens verdier).
  • Les eller endres $ Shellopts. Shell Miljøalternativer.
  • Omdirigere utgangen av en kommando.
  • Påkalle kommandoer som krever en bane for å finne dem. Det vil si, du kan ikke utstede en kommando som har en eller flere fremadrettede skråstreker " / / " i det.
  • Påkalle Exec. å erstatte en annen prosess for skallet.
  • Bruk noen av de begrensede funksjonene i et skript.

Du kan påkalle et begrenset bash shell ved å bruke -R (Begrenset) alternativ. Å prøve å gjøre en enkel oppgave som å endre arbeidskatalogen er forbudt. En terskmelding forteller deg det CD. er begrenset. [1. 3]

 bash -r 
 CD-dokumenter 

[1. 3]

Bash-skallet kan også oppdage når det er påkalt å bruke "rbash" i stedet for "bash". Dette får det til å starte som et begrenset skall også. Dette gir en praktisk måte å angi standardskallet for en bestemt bruker, som vi skal bruke snart. [1. 3]

Hvis vi bruker hvor er Kommando på Ubuntu å se etter rbash. Filer, vi ser at den kjørbare er i katalogen "usr / bin". MAN-siden er i "/ usr / share / man / man1" -katalog. [1. 3]

Bruker Ls. kommando med den -L. (lang) alternativet avslører det rbash. er faktisk en symbolsk lenke til bash. . [1. 3]

 whereis rbash 
 ls -l / usr / bin / rbash 

[1. 3]

På Manjaro og Fedora, rbash. symbolsk lenke måtte opprettes. Dette fungerer på begge distribusjoner: [1. 3]

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

[1. 3]

Den andre gangen vi bruker hvor er kommandoen, det finner rbash. i katalogen "/ usr / bin". [1. 3]

Begrenser en bruker

La oss Opprett en ny brukerkonto kalt "minnie". Vi vil sette skallet for å være det begrensede skallet ved hjelp av -S. (Shell) alternativet til useradd. kommando. Vi vil også Angi kontoens passord bruker passwd. kommandoen, og vi lager en hjemmemappe for dem. [1. 3]

De -P. (foreldre) flagg i mkdir. kommandoen forteller mkdir. For å lage målkatalogen og eventuelle foreldre kataloger som den trenger for å skape, også. Så ved å lage katalogen "/ HOME / MINNIE / BIN", oppretter vi katalogen "/ Home / Minnie" samtidig. [1. 3]

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

[1. 3]

Når Minnie logger inn, vil hun løpe i et begrenset skall. [1. 3]

 CD 

[1. 3]

Hun kan ikke påberope kommandoer som må inkludere en fremover slash " / / ": [1. 3]

 / usr / bin / ping 

[1. 3]

Imidlertid kan hun fortsatt utføre kommandoer som finnes i banen. [1. 3]

 ping 

[1. 3]

Det er ikke oppførselen du kanskje har forventet, og det er absolutt ikke det vi vil ha. For å stramme begrensningene videre, må vi endre banen som Minnies Shell vil bruke til å lete etter kommandoer. [1. 3]

Stramme restriksjonene

Når vi opprettet Minnie's Home Directory "/ Home / Minnie", opprettet vi også en "/ Home / Minnie / bin" -katalog. Det er her katalogen kommer til spill. [1. 3]

Vi skal redigere Minnies-filen " Vi vil også begrense Minnies ".bash_profile" -fil slik at bare rot kan redigere den. Det betyr at ingen annen bruker kan redigere den filen og endre banen hennes. [1. 3]

 sudo gedit /home/minnie/.bash_profile

[1. 3]

Enten rediger den eksisterende "banen =" eller legg til følgende linje: [1. 3]

 PATH = $ HOME / BIN 

[1. 3]

Lagre filen. Vi vil Endre eieren av filen å rote med chown. kommando og Endre filtillatelsene bruker chmod. kommando. Bare roten brukeren vil kunne redigere filen. [1. 3]

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

[1. 3]

Neste gang brukeren minnie logger inn, peker hennes bane på en enkelt mappe. [1. 3]

[1. 3]

Vår begrensede bruker minnie kan bare bruke bash innebygde kommandoer som ekko , alias , og Logg ut . Hun kan ikke engang bruke Ls. ! [1. 3]

 ls 

[1. 3]

Vi må løsne vår stranglehold litt hvis vi vil at de skal kunne gjøre noe nyttig i det hele tatt. Vi lager noen symbolske lenker fra Minnies "bin" -katalog til kommandoene som vi ønsker Minnie for å kunne bruke. [1. 3]

 sudo ln -s / bin / ls / hjemme / minnie / bin 
 sudo ln -s / bin / topp / hjemme / minnie / bin 
 sudo ln -s / bin / oppetid / hjem / minnie / bin 
 sudo ln -s / bin / pinky / home / minnie / bin 

[1. 3]

Når Minnie Neste logger inn, finner hun at hun kan bruke bash innebygde kommandoer, pluss de kommandoene som har vært knyttet til. [1. 3]

 ls 
 Pinky Dave 
 Oppetid 

[1. 3]

Begrenser eksisterende brukere

Vi opprettet Minnie som en ny bruker. Til endre skallet av en eksisterende bruker, vi kan bruke -S. (Shell) alternativet til usermod. kommando. [1. 3]

 sudo usermod -s / bin / rbash mary 

[1. 3]

Du kan bruke mindre Kommando på filen "/ etc / passwd" for raskt å se hva Shell er satt som en brukers standardskall. [1. 3]

 mindre / etc / passwd 

[1. 3]

Vi kan se at brukeren Maria vil bruke det begrensede skallet når hun neste logger inn. [1. 3]

[1. 3]

Husk å bruke de andre endringene for å begrense deres $ Sti Miljøvariabel og for å angi kommandoene du vil at brukeren Mary skal kunne utføre. [1. 3]

Begrensende skript

En vanlig, ubegrenset brukeren kan starte skript som kjøres i et begrenset skall. Kopier følgende linjer og lime dem inn i en editor. Lagre filen som “restricted.sh” og nær redaktøren. [1. 3]

 #! / Bin / bash

# script starter i normal Bash shell
echo "## I ubegrenset modus! ##"

ekko
echo "Current katalogen:` pwd`"
echo "Endre katalog"
cd / usr / share
echo "Nå i katalogen:` pwd`"
echo "Endre til hjemmekatalog"
cd ~
echo "Nå i katalogen:` pwd`"

# Innst begrenset modus
sett -r

ekko
echo "## I begrenset modus,! ##"

ekko
echo "Current katalogen:` pwd`"
echo "Endre katalogen til / home /"
cd / home
echo "Fortsatt i katalogen:` pwd`"

ekko
echo "Prøver å starte en annen shell"
/ Bin / bash

ekko
echo "Prøver å omdirigere kommandoutdataene"
ls -l $ HOME & gt; my_files.txt
katt my_files.txt
ekko

exit 0 

Vi trenger å bruke chmod. kommando med den + x (Utføre) flagg for å gjøre manuset kjørbar. [1. 3]

 chmod + x restricted.sh 

[1. 3]

Den første delen av skriptet løper i en normal skall. [1. 3]

 ./ restricted.sh 

[1. 3]

Det andre parti av den skript den litt etter de “sett” -r linje i en begrenset skall. [1. 3]

[1. 3]

Ingen av de forsøkt handlinger lykkes i begrenset del av manuset. [1. 3]

En hel skript kan bringes til å løpe i en begrenset skall ved å tilsette -R til første linje: [1. 3]

! # / Bin / fest -r 

Husk Houdini

Begrensede skjell er nyttig, men ikke helt ufeilbarlig. En tilstrekkelig dyktig bruker kan være i stand til å unnslippe dem. Men når de brukes skjønnsomt, er de en nyttig måte for å etablere et sett av begrensninger for en bestemt konto. [1. 3]


Linux - Mest populære artikler

Hvordan gjenopprette slettede filer på Linux med Testdisk

Linux Nov 18, 2024

Fatmawati Achmad Zaenuri / Shutterstock Har du noen gang slettet en fil og angret det umiddelbart? Du trenger den tilbake, og rask! Men hva hvis filen er så n..


Den beste Linux-distribusjoner Uten systemd

Linux Feb 24, 2025

BMJ / Shutterstock.com. Når de dominerende Linux-distribusjonene vedtok systemd. , disceders gaffed distribusjoner og startet nye prosjekter. Så h..


Slik behandler en fil linje for linje i et Linux Bash Script

Linux Feb 3, 2025

Fatmawati Achmad Zaenuri / Shutterstock Det er ganske lett å lese innholdet i en Linux tekstfil linje for linje i et shell script, så lenge du avtale med n..


Hva er nytt i Linux Mint 20,2 “Uma”

Linux Jul 8, 2025

Linux mynte, en av de mer Populære Linux-distribusjoner , har gitt ut versjon 20.2, kallenavnet "Uma". Den leveres med nye funksjoner, oppgraderte internals og andre endringe..


Hvordan Roll Back Kernel i Linux

Linux Sep 30, 2025

fatmawati achmad zaenuri / shutterstock.com Hvis Linux-PC plutselig har problemer etter en oppdatering til systemet ditt, er det mulig en [1. 3] Linux..


Hva er nytt i GNOME 41?

Linux Sep 16, 2025

Linux Desktop Environment Gnome 41 ble utgitt 22. september 2021. Kommer varm på hælene til GNOME 40s paradigm-skiftende arbeidsflytendringer, gir Gnome 41 noe av stoffet? V..


Hva er Pop! _OS?

Linux Oct 20, 2025

Hvis du har hørt om Pop! _Os. , du har kanskje sett folk ofte referere til det som det beste Windows-alternativet eller den ideelle Linux-distribusjonen for spill. Her er hva..


Hvordan skylle DNS i Linux

Linux Nov 14, 2024

Er Internett -nettleseropplevelsen din treg på Linux -enheten din, eller er nettstedene du besøker utdaterte eller feil nettsted helt? La oss diskutere å skylle DNS -cachen på Linux, og hvo..


Kategorier