En begrænset shell begrænser, hvad en brugerkonto kan gøre på Linux. En begrænset bruger kan ikke ændre deres mappe, og du kontrollerer hvilke kommandoer, de har adgang til. Sådan opretter du en begrænset skal på Linux.
Begrænsede skaller.
En begrænset skal er ikke en anden skal. Det er en anden måde af en standard shell. . Det Bash. Vi Korn. Vi Fisk , og andre skaller kan alle startes i begrænset skaltilstand. Vi bruger Bash i denne artikel, men de samme principper gælder for de andre skaller.
Fordi begrænsede skaller er bare en anden måde at bruge din standard shell, er de nemme at oprette. Der er ikke noget at installere, og de er tilgængelige, hvor Linux er.
Begrænsede skaller kan også anvendes til scripts. Det sikrer, at enhver skade, de kan forårsage, hvis de er blevet skrevet forkert, er begrænset til deres begrænsede verdens grænser, og at de ikke har adgang til hele din computer.
Vær opmærksom på, at begrænsede skaller ikke er helt flugtbevis. Nogen med tilstrækkelig viden kan undslippe en begrænset skal. De er gode til at sætte sikre grænser på en afslappet bruger, men ikke stole på begrænsede skaller for enhver real-verdens sikkerhed på et produktionssystem.
RELATEREDE: Hvad er forskellen mellem Bash, Zsh og andre Linux-skaller?
Begrænset bash.
Når du kører bash som en begrænset skal, har brugeren nogle funktioner fjernet fra dem. Specifikt brugeren kan ikke :
-
Brug
CD.at ændre arbejdskataloget. -
Ændre værdierne for
$ Path.Vi$ Shell.Vi$ Bash_env., Or.$ ENV.miljøvariabler (men de kan læse de nuværende værdier). -
Læse eller ændre
$ Shellopts.Shell miljøindstillinger. - Omdirigere udgangen af en kommando.
-
Påberåbe kommandoer, der kræver en sti, der finder dem. Det vil sige, du kan ikke udstede en kommando, der har en eller flere fremadgående skråstreger "
/" i det. -
Påberåbe.
exec.at erstatte en anden proces til skallen. - Brug nogen af de begrænsede funktioner i et script.
Du kan påberåbe sig en begrænset bash shell ved at bruge
-r.
(Begrænset) mulighed. Forsøger at gøre en simpel opgave som at ændre arbejdskataloget er forbudt. En gerse besked fortæller dig det
CD.
er begrænset.
bash -r
CD-dokumenter
Bash Shell kan også registrere, når den er blevet påberåbt ved hjælp af "RBASH" i stedet for "bash". Dette får det også til at starte som en begrænset skal. Dette giver en bekvem måde at indstille standard shell til en bestemt bruger, som vi vil bruge snart.
Hvis vi bruger
hvor er
kommando på Ubuntu for at kigge efter
rbash.
Filer, vi ses, at den eksekverbare er i "USR / BIN" -mappen. MAN-siden er i "/ USR / Share / Man / Man1" -mappen.
Bruger
ls.
kommando med
-L.
(lange) mulighed viser det
rbash.
er
faktisk et symbolsk link
til
bash.
.
Hvor er RBASH
LS -L / USR / BIN / RBASH
På Manjaro og Fedora, den
rbash.
Symbolisk link skulle oprettes. Dette virker på begge distributioner:
Hvor er RBASH
sudo ln -s / bin / bash / bin / rbash
Hvor er RBASH
Anden gang bruger vi
hvor er
kommando, det finder
rbash.
i kataloget "/ USR / bin".
Begrænsning af en bruger.
Lad os.
Opret en ny brugerkonto
hedder "Minnie". Vi sætter deres shell for at være den begrænsede skal ved hjælp af
-S.
(shell) mulighed for
useradd.
kommando. Vi vil også
Indstil kontoens adgangskode
bruger
passwd.
kommando, og vi opretter en hjemmemappe til dem.
Det
-P.
(forældre) flag i
mkdir.
kommando fortæller
mkdir.
At oprette målmappen og eventuelle forældre mapper, som den skal skabe også. Så ved at oprette kataloget "/ Hjem / Minnie / Bin", opretter vi kataloget "/ Home / Minnie" på samme tid.
sudo useradd minnie -s / bin / rbash
sudo passwd minnie
sudo mkdir -p / hjem / minnie / bin
Når Minnie logger ind, kører hun i en begrænset skal.
CD
Hun kan ikke påberåbe kommandoer, der skal medtage et fremad skråstreg "
/
":
/ USR / BIN / PING
Men hun kan stadig udføre kommandoer, der findes i stien.
Ping
Det er ikke den adfærd, du måske havde forventet, og det er bestemt ikke, hvad vi vil have. For at stramme begrænsningerne længere skal vi ændre den vej, som Minnie's Shell vil bruge til at se efter kommandoer.
Stramning af begrænsningerne
Da vi oprettede Minnie's Home Directory "/ Home / Minnie", har vi også oprettet en "/ Home / Minnie / Bin" -mappe. Det er her, hvor denne mappe kommer i spil.
Vi skal redigere Minnie's ".bash_profile" -fil og sætte sin vej til kun at pege på den pågældende mappe. Vi vil også begrænse Minnie's ".bash_profile" -fil, så kun rod kan redigere den. Det betyder, at ingen anden bruger kan redigere den fil og ændre sin vej.
sudo gedit /home/minnie/.bash_profile
Enten Rediger den eksisterende "PATH =" eller tilføj følgende linje:
PATH = $ HOME / BIN
Gem filen. Godt
Skift ejer af filen
at rod ved hjælp af
Chown.
kommando og.
Skift filtilladelser
bruger
chmod.
kommando. Kun rodbrugeren vil kunne redigere filen.
sudo chown rod: root /home/minnie/.bash_profile
sudo chmod 755 /home/minnie/.bash_profile
LS -L /Home/minnie/.bash_profile
Næste gang bruger minnie logger ind, peger hendes sti til en enkelt mappe.
Vores begrænsede bruger Minnie kan kun bruge bash indbyggede kommandoer som
ekko
Vi
alias
, og.
Log ud
. Hun kan ikke engang bruge
ls.
!
LS
Vi skal slappe af vores kvælehold lidt, hvis vi vil have dem til at kunne gøre noget nyttigt overhovedet. Vi opretter nogle symbolske links fra Minnie's "bin" -mappe til de kommandoer, vi ønsker, at Minnie kan bruge.
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 / hjem / minnie / bin
Når Minnie næste logger ind, vil hun finde ud af, at hun kan bruge bølgens indbyggede kommandoer plus de kommandoer, der har været forbundet med.
LS
Pinky Dave
Uptime
Begrænsning af eksisterende brugere
Vi oprettede Minnie som en ny bruger. Til
ændre shell af en eksisterende
bruger, vi kan bruge
-S.
(shell) mulighed for
Usermod.
kommando.
sudo usermod -s / bin / rbash Mary
Du kan bruge
mindre
Kommando på filen "/ etc / passwd" for hurtigt at se, hvilken shell der er indstillet som en brugers standard shell.
mindre / etc / passwd
Vi kan se, at brugeren Mary vil bruge den begrænsede skal, når hun nede logger ind.
Husk at anvende de andre ændringer for at begrænse deres
$ Path.
Miljøvariabel og for at indstille de kommandoer, du vil have brugeren Mary til at kunne udføre.
Begrænsning af scripts.
En regelmæssig, ubegrænset bruger kan starte scripts, der udføres i en begrænset skal. Kopier de følgende linjer og indsæt dem i en editor. Gem filen som "begrænset.sh" og luk editoren.
#! / Bin / bash # Script starter i normal bash shell ekko "## i ubegrænset tilstand! ##" ekko ECHO "Aktuel mappe:` PWD` ' ekko "skiftende mappe" CD / USR / Del ECHO "Nu i mappe:` PWD` ' ekko "skift til hjemmekatalog" CD ~ ECHO "Nu i mappe:` PWD` ' # Indstilling af begrænset tilstand Set -R. ekko ekko "## i begrænset tilstand! ##" ekko ECHO "Aktuel mappe:` PWD` ' ECHO "Ændring af mappe til / Home /" CD / HOME. ekko "stadig i mappe:` Pwd` ' ekko ekko "forsøger at starte en anden shell" / bin / bash ekko ekko "forsøger at omdirigere kommandoutudgang" LS -L $ Home & GT; my_files.txt. kat my_files.txt. ekko Afslut 0
Vi skal bruge
chmod.
kommando med
+ X.
(Execute) Flag for at gøre scriptet eksekverbar.
chmod + x begrænset.sh
Den første del af scriptet løber i en normal skal.
./ Begrænset.sh
Den anden del af scriptet-biten efter "Set -R-line-kørslen i en begrænset skal.
Ingen af de forsøgte handlinger lykkes i den begrænsede del af scriptet.
Et helt script kan gøres til at køre i en begrænset skal ved at tilføje
-r.
til den første linje:
! # / Bin / bash -r
Husk Houdini.
Begrænsede skaller er nyttige, men ikke helt ufejlbare. En tilstrækkelig kvalificeret bruger kan muligvis undslippe dem. Men når de bruges dårligt, er de en nyttig måde at etablere et sæt begrænsninger for en bestemt konto.