Sådan bruges Begrænset Shell til at begrænse, hvad en Linux-bruger kan gøre

Mar 25, 2025
Linux
FATMAWATI ACHMAD ZAENURI / SHUTTERSTOCK

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.


Linux - Mest populære artikler

Hvad er nyt i Linux Mint 20.2 "Uma"

Linux Jul 8, 2025

Linux Mint, en af ​​de mere Populære Linux distributioner , har frigivet version 20.2, navnet "Uma". Den leveres med nye funktioner, opgraderede internals og andre ændri..


Hvad er nyt i Elementary OS 6 "Odin"

Linux Aug 14, 2025

elementær, Inc. Der er mange Linux-distributioner (distributioner), at folk hævder er gode erstatninger for Windows eller MacOS. Men der er få, der har at..


Hvad er pop! _OS?

Linux Oct 20, 2025

Hvis du har hørt om Pop! _OS. , du har måske set folk, der ofte henviser til det som det bedste Windows-alternativ eller den ideelle Linux-distribution for Gaming. Her er hv..


Hvad er nyt i Fedora 35

Linux Nov 2, 2024

Fedora 35, rød hat 'S Free. Linux distribution. (Distro), blev udgivet den 2. november 2021. Fra en opdateret desktop oplevelse til bag-scenes tweaks, tager vi et ki..


10 Basic Linux-kommandoer til begyndere

Linux Oct 13, 2025

Bare komme i gang på Linux? At gøre dig komfortabel med kommandolinjen er afgørende. Hvis du allerede er bekendt med kommandolinjeværktøjer, finder du, at Linux og Mac deler meget til..


Hvad er UNIX EPOCH, og hvordan virker UNIX Time?

Linux Nov 10, 2024

Mikhail Leonov / Shutterstock Unix gemmer tid som antallet af sekunder siden 1. januar 1970. Og det betyder, at Linux også gør. Vi forklarer dette tilsynelad..


Sådan skylles DNS i Linux

Linux Nov 14, 2024

Er din internetbrowseroplevelse langsom på din Linux -enhed, eller er de websteder, du besøger forældede, eller det forkerte websted helt? Lad os diskutere skylning af DNS -cache på Linux, ..


Sådan håndteres rum i filnavne på Linux

Linux Dec 14, 2024

Som de fleste operativsystemer understøtter Linux filnavne med mellemrum i dem. Men at bruge disse filnavne på kommandolinjen er ikke altid ligetil. Her er flere måder, du kan håndtere filn..


Kategorier