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]