Hoe te gebruiken Restricted Shell te beperken wat een Linux gebruiker kan doen

Mar 25, 2025
Linux
Fatmawati achmad zaenuri / shutterstock

Een beperkte shell beperkt wat een gebruikersaccount kan doen op Linux. Een beperkte gebruiker kan hun map niet wijzigen en u regelt welke opdrachten waartoe ze toegang hebben. Hier is hoe een beperkte shell op Linux op te zetten.

Beperkte schalen

Een beperkte shell is geen andere shell. Het is een andere manier van een standaardschaal . De Bash , Korn , Vis en andere schelpen kunnen allemaal worden gestart in de beperkte Shell-modus. We gebruiken bash in dit artikel, maar dezelfde principes zijn van toepassing op de andere schelpen.

Omdat beperkte schelpen gewoon een andere manier zijn om uw standaardschaal te gebruiken, zijn ze gemakkelijk in te stellen. Er is niets te installeren, en ze zijn beschikbaar, waar Linux ook is.

Beperkte schalen kunnen ook worden toegepast op scripts. Dat zorgt ervoor dat eventuele schade die ze kunnen veroorzaken als ze verkeerd zijn geschreven, is beperkt tot de grenzen van hun beperkte wereld en dat ze geen toegang hebben tot uw hele computer.

Houd er echter rekening mee dat beperkte schelpen niet volledig ontsnappen aan -bestendig. Iemand met voldoende kennis kan aan een beperkte shell ontsnappen. Ze zijn geweldig voor het plaatsen van veilige grenzen op een informele gebruiker, maar vertrouwen niet op beperkte shells voor elke echte beveiliging op een productiesysteem.

VERWANT: Wat is het verschil tussen bash, zsh en andere Linux-schalen?

Beperkte bash

Wanneer je bash runt als een beperkte shell, heeft de gebruiker wat mogelijkheden van hen verwijderd. Specifiek de gebruiker kan niet :

  • Gebruik maken van CD om de werkdirectory te wijzigen.
  • Verander de waarden van de $ Pad , Shell , $ Bash_env , of $ Env milieuvariabelen (maar ze kunnen de huidige waarden lezen).
  • Lezen of veranderen $ Schelps Shell Environmental-opties.
  • Omleiden de uitvoer van een opdracht.
  • Oproepen opdrachten die een pad vereisen om ze te vinden. Dat wil zeggen, je kunt geen commando geven die een of meer vooruitschutting heeft " / " in het.
  • Aanroepen exec om een ​​ander proces voor de schaal te vervangen.
  • Gebruik een van de beperkte functies in een script.

Je kunt een beperkte bash-shell oproepen met behulp van de -R (beperkte) optie. Proberen een eenvoudige taak te doen zoals het veranderen van de werkdirectory is verboden. Een TERE-bericht vertelt u dat CD is beperkt.

 BASH -R 
 CD-documenten 

De bash-shell kan ook detecteren wanneer het is aangeroepen met behulp van "rbash" in plaats van "bash". Dit zorgt ervoor dat het ook begint als een beperkte shell. Dit biedt een handige manier om de standaardschaal voor een bepaalde gebruiker in te stellen, die we snel zullen gebruiken.

Als we de waar is opdracht op ubuntu om naar de rbash Bestanden, we zullen zien dat het uitvoerbare bestand in de map "USR / bin" staat. De man van de man is in directory "/ usr / share / man / man1".

De ... gebruiken ls commando met de -L (lange) optie onthult dat rbash is Eigenlijk een symbolische link tot bash .

 Waaris rbash 
 LS -L / USR / BIN / RBASH 

Op Manjaro en Fedora, de rbash Symbolische link moest worden gemaakt. Dit werkt op beide distributies:

 Waaris rbash 
 SUDO LN -S / BIN / BASH / BIN / RBASH 
 Waaris rbash 

De tweede keer gebruiken we de waar is opdracht, het vindt rbash in de map "/ usr / bin".

Beperking van een gebruiker

Laten we Maak een nieuw gebruikersaccount genoemd "Minnie." We stellen hun shell in om de beperkte shell te zijn met behulp van de -s (Shell) optie van de Useradd opdracht. We zullen ook Stel het wachtwoord van het account in de ... gebruiken passwd opdracht en we maken een thuismap voor hen.

De -P (ouders) vlag in de Mkdir commando vertelt Mkdir Om de doelmap en eventuele mappen die het nodig heeft om ook te maken. Dus door de map "/ Home / Minnie / Bin" te maken, maken we tegelijkertijd de map "/ Home / Minnie".

 Sudo UserAdd Minnie -S / Bin / Rbash 
 SUDO PASSWD MINNIE 
 SUDO MKDIR -P / HOME / MINNIE / BIN 

Wanneer Minnie inlogt, wordt ze in een beperkte shell uitgevoerd.

 CD 

Ze kan opdrachten niet oproepen die een voorwaartse slash moeten opnemen " / "

 / usr / bin / ping 

Ze kan echter nog steeds commando's uitvoeren die op het pad worden gevonden.

 Ping 

Dat is niet het gedrag dat je misschien hebt verwacht, en het is zeker niet wat we willen. Om de beperkingen verder aan te scherpen, moeten we het pad veranderen dat de Shell van Minnie zal gebruiken om opdrachten te zoeken.

Aanscherping van de beperkingen

Toen we Minnie's Home Directory "/ Home / Minnie" hebben gemaakt, hebben we ook een map "/ Home / Minnie / Bin" gemaakt. Dit is waar die map in het spel komt.

We gaan Minnie's ".bash_profile" -bestand bewerken en haar pad instellen om alleen naar die map te wijzen. We zullen Minnie's ".bash_profile" -bestand ook beperken, zodat alleen root het kan bewerken. Dat betekent dat er geen andere gebruiker dat bestand kan bewerken en haar pad kan wijzigen.

 Sudo Gedit /home/Minnie/.Bash_Profile

Bewerk het bestaande "pad =" of voeg de volgende regel toe:

 Pad = $ Home / Bin 

Bewaar het bestand. We zullen Wijzig de eigenaar van het bestand om te rooten met behulp van de gekoesterd commando en Wijzig de bestandsmachtigingen de ... gebruiken chmod opdracht. Alleen de root-gebruiker kan het bestand bewerken.

 Sudo chown root: root /home/minnie/.bash_profile
 SUDO CHMOD 755 /HOME/MINNIE/.BASH_PROFILE
 LS -L /home/Minnie/.Bash_Profile

De volgende keer dat de gebruiker Minnie inlogt, wijst haar pad naar een enkele map.

Onze beperkte gebruiker Minnie kan alleen Bash-ingebouwde opdrachten gebruiken zoals echo , alias , en uitloggen . Ze kan niet eens gebruiken ls !

 LS 

We moeten onze wurggreep een beetje losmaken als we willen dat ze helemaal niets nuttigs kunnen doen. We maken enkele symbolische koppelingen van Minnie's "Bin" -map naar de opdrachten die we willen dat Minnie kan gebruiken.

 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 

Wanneer Minnie volgende inlogt, zal ze vinden dat ze de Bash-ingebouwde opdrachten kan gebruiken, plus die opdrachten die zijn gekoppeld.

 LS 
 Pinky Dave 
 Uptime 

Beperking van bestaande gebruikers

We hebben Minnie als een nieuwe gebruiker gemaakt. Tot verander de schaal van een bestaand Gebruiker, we kunnen de -s (Shell) optie van de usermod opdracht.

 Sudo UserMod -S / Bin / Rbash Mary 

Je kunt de minder Opdracht op het bestand "/ etc / passwd" om snel te zien welke schaal is ingesteld als de standaardschaal van een gebruiker.

 Minder / etc / passwd 

We kunnen zien dat de gebruiker Maria de beperkte shell zal gebruiken wanneer zij vervolgens inlogt.

Vergeet niet om de andere wijzigingen toe te passen om hun te beperken $ Pad Milieuvariabele en om de opdrachten in te stellen die u wilt dat de gebruiker Maria kan uitvoeren.

Scripts beperken

Een regelmatige, onbeperkte gebruiker kan scripts lanceren die worden uitgevoerd in een beperkte shell. Kopieer de volgende lijnen en plak ze in een editor. Sla het bestand op als "Beperkt.SH" en sluit de editor.

 #! / Bin / bash

# Script start in normale bash shell
echo "## in onbeperkte modus! ##"

echo
echo "Huidige map:` pwd`
echo "Wisseldirectory"
cd / usr / share
echo "nu in de directory:` pwd` "
echo "Veranderen naar thuisgids"
CD ~
echo "nu in de directory:` pwd` "

# Instelling Beperkte modus
set -r

echo
echo "## in beperkte modus! ##"

echo
echo "Huidige map:` pwd`
Echo "Wisseldirectory to / Home /"
CD / Home
echo "nog steeds in de directory:` pwd` "

echo
echo "probeert een andere shell te starten"
/ bin / bash

echo
echo "Proberen om de opdrachtuitvoer te redden"
LS -L $ HOME & GT; my_files.txt
cat my_files.txt
echo

EXIT 0 

We moeten de chmod commando met de + x (Execute) vlag om het uitvoerbare bestand van het script te maken.

 CHMOD + X Beperkt.SH 

Het eerste deel van het script loopt in een normale schaal.

 ./ Beperkt.SH 

Het tweede deel van het script - het bit na de line-runs "SET -R" in een beperkte schaal.

Geen van de poging tot acties slagen in het beperkte deel van het script.

Een volledig script kan worden gemaakt om in een beperkte shell te lopen door toe te voegen -R naar de eerste regel:

! # / Bin / bash -r 

Onthoud Houdini

Beperkte schelpen zijn handig, maar niet helemaal onfeilbaar. Een voldoende bekwame gebruiker kan mogelijk aan hen ontsnappen. Maar indien uchter gebruikt, zijn ze een nuttige manier om een ​​reeks beperkingen voor een bepaald account vast te stellen.


Linux - Meest populaire artikelen

Hoe Force gebruikers hun wachtwoorden te wijzigen op Linux

Linux Nov 4, 2024

Ilya Titchev / Shutterstock Wachtwoorden zijn de hoeksteen voor beveiliging van uw account. We laten u zien hoe u wachtwoorden, set verlopen van het wachtwoord..


Wat is nieuw in Ubuntu 21.04 ‘Hirsute Hippo’

Linux Apr 22, 2025

De gloednieuwe afgifte van Ubuntu 21.04 , de Hirsute Hippo, werd vrijgegeven op 22 april 2021. Het is een interim-release van de populaire Linux-distributie, met slechts negen..


Hoe gebruikte versleutelde wachtwoorden in bashscripts

Linux Jun 30, 2025

fatmawati achmad zaenuri / shutterstock.com Als je gedwongen bent om een ​​Linux-script gebruiken om verbinding te maken met een wachtwoord beveiligde bron..


Wat is er nieuw in Debian 11 “Bullseye”

Linux Jul 22, 2025

Debian , de progenitor van vele andere Linux-distributies, heeft afgifte 11 beschikbaar gesteld in de testfase. Weeg je de deugden van het upgraden, of ben je gewoon nieuwsgieri..


Wat is nieuw in Fedora 35

Linux Nov 2, 2024

Fedora 35, rode Hoed Gratis Linux-distributie (Distro), werd uitgebracht op 2 november 2021. Van een bijgewerkte desktopervaring tot achter-de-scènes tweaks, we kijk..


Hoe te downloaden en installeren van de stoom op Linux

Linux Oct 9, 2025

Postmodern Studio / Shutterstock.com Dus je wilt gamen proberen Linux ? Laten we in dit artikel kijken naar het installeren van stoom op elke Linux-..


Installeer Linux op een M1 Mac met Apple Silicon

Linux Nov 11, 2024

Inheemse Linux-ondersteuning voor Apple's nieuwe ARM-gebaseerde architectuur is nog niet klaar, maar u kunt Linux draaien op een M1 , M1 Pro, of M1 Max met behulp van een ..


Hoe de PID van een Linux -proces te vinden met PIDOF of PGREP

Linux Nov 15, 2024

Werken met een Linux -proces betekent vaak het kennen van de proces -ID of PID. Het is een uniek nummer dat wordt gegeven aan elk stukje lopende software. Hier zijn twee manieren om erachter te..


Categorieën