So verwenden Sie eine eingeschränkte Shell, um zu begrenzen, was ein Linux-Benutzer tun kann

Mar 25, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock

Eine eingeschränkte Hülle begrenzt, was ein Benutzerkonto auf Linux tun kann. Ein eingeschränkter Benutzer kann ihr Verzeichnis nicht ändern, und Sie steuern, welche Befehle sie Zugriff haben. Hier ist, wie Sie eine eingeschränkte Hülle auf Linux einrichten.

Eingeschränkte Muscheln

Eine eingeschränkte Hülle ist keine andere Hülle. Es ist ein anderer Modus von eine Standardschale . Die Bash , Korn , Fisch , und andere Muscheln können alle im eingeschränkten Shell-Modus gestartet werden. Wir werden Bash in diesem Artikel verwenden, aber die gleichen Prinzipien gelten für die anderen Muscheln.

Da eingeschränkte Muscheln nur eine andere Möglichkeit haben, Ihre Standardschale zu verwenden, sind sie einfach eingerichtet. Es gibt nichts zu installieren, und sie sind verfügbar, wo Linux ist.

Ebenfalls können eingeschränkte Muscheln auf Skripts angewendet werden. Dies stellt sicher, dass der Schaden, den sie verursachen können, wenn er falsch geschrieben wurde, auf die Grenzen ihrer eingeschränkten Welt beschränkt ist und dass sie keinen Zugriff auf Ihren gesamten Computer haben.

Seien Sie sich jedoch bewusst, dass eingeschränkte Muscheln nicht völlig fluchtsicher sind. Jemand mit genug Wissen kann einer eingeschränkten Hülle entgehen. Sie sind großartig, um sichere Grenzen auf einen zufälligen Benutzer zu setzen, sondern verlassen Sie sich jedoch nicht auf eingeschränkte Muscheln für eine echte Sicherheit in einem Produktionssystem.

VERBUNDEN: Was ist der Unterschied zwischen Bash, ZSH und anderen Linux-Muscheln?

Eingeschränkter Bash.

Wenn Sie Bash als eingeschränkte Hülle ausführen, hat der Benutzer einige Funktionen, die von ihnen entfernt werden. Insbesondere der Benutzer kann nicht :

  • Verwenden CD um das Arbeitsverzeichnis zu ändern.
  • Ändern Sie die Werte der $ Pfad , $ Shell , $ Bash_env. , oder $ ENV. Umweltvariablen (aber sie können die aktuellen Werte lesen).
  • Lesen oder ändern $ Shellopts. Shell-Umweltoptionen.
  • Die Ausgabe eines Befehls umleiten.
  • Rufen Sie Befehle auf, die einen Pfad benötigen, um sie zu finden. Das heißt, Sie können keinen Befehl ausstellen, der einen oder mehrere Vorwärtsschrägungen hat " / " drin.
  • Aufrufen EXEK. einen anderen Prozess für die Schale ersetzen.
  • Verwenden Sie eine der eingeschränkten Funktionen in einem Skript.

Sie können eine eingeschränkte Bash-Shell mit der Verwendung der -R (eingeschränkt) Option. Wenn Sie versuchen, eine einfache Aufgabe auszuführen, wie das Ändern des Arbeitsverzeichnisses das Arbeitsverzeichnis ändert, ist verboten. Eine treffzige Nachricht sagt Ihnen das CD ist eingeschränkt.

 Bash -r 
 CD-Dokumente 

Die Bash-Shell kann auch erkennen, wenn er mit "rbash" anstelle von "Bash" aufgerufen wurde. Dies führt dazu, dass es auch als eingeschränkte Hülle beginnt. Dies bietet eine bequeme Möglichkeit, die Standardhülle für einen bestimmten Benutzer festzulegen, den wir bald verwenden werden.

Wenn wir das verwenden wo ist Befehl auf Ubuntu, nach der rbash. Dateien, werden wir sehen, dass sich die ausführbare Datei im Verzeichnis "usr / bin" befindet. Die MAN-Seite befindet sich im Verzeichnis "/ usr / share / mann / man1".

Verwendung der ls. Befehl mit dem. -l. (lange) Option zeigt das rbash. ist Eigentlich ein symbolischer Link zu Bash .

 worin rbash 
 LS -L / usr / bin / rbash 

Auf Manjaro und Fedora, das rbash. Die symbolische Verbindung musste erstellt werden. Dies funktioniert auf beiden Distributionen:

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

Das zweite Mal verwenden wir die wo ist Befehl, es findet es rbash. im Verzeichnis "/ usr / bin".

Einen Benutzer einschränken

Lasst uns Erstellen Sie ein neues Benutzerkonto benannt "Minnie." Wir setzen ihre Schale ein, um die eingeschränkte Schale mit der -S (Shell) Option der UserAdd. Befehl. Wir werden auch sein Stellen Sie das Kennwort des Kontos ein Verwendung der Passwd Befehl, und wir erstellen einen Heimordner für sie.

Die -P (Eltern) Flagge in der mkdir. Befehl erzählt mkdir. So erstellen Sie das Zielverzeichnis und alle übergeordneten Verzeichnisse, die es auch erstellen muss. Durch das Erstellen des Verzeichnisses "/ Home / Minnie / bin" erstellen wir das Verzeichnis "/ home / minnie" gleichzeitig.

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

Wenn Minnie einloggt, läuft sie in einer eingeschränkten Hülle.

 CD 

Sie kann keine Befehle aufrufen, die einen Vorwärtsschrägstrich aufnehmen müssen " / ":::

 / usr / bin / ping 

Sie kann jedoch immer noch Befehle ausführen, die im Pfad gefunden werden.

 Ping 

Das ist nicht das Verhalten, das Sie möglicherweise erwartet haben, und es ist sicherlich nicht das, was wir wollen. Um die Einschränkungen weiter festzuziehen, müssen wir den Pfad ändern, den Minnies Shell verwenden wird, um nach Befehlen zu suchen.

Die Einschränkungen anziehen

Wenn wir Minnies Home Directory "/ Home / MINNIE" erstellt haben, erstellt wir auch ein Verzeichnis "/ Home / Minnie / Bin". Hier kommt dieses Verzeichnis ins Spiel.

Wir werden Minnies ".bash_profile" -Datei bearbeiten, und setzen ihren Pfad, um nur auf dieses Verzeichnis zu zeigen. Wir richten sich auch die ".bash_profile" -Datei einschränken, sodass nur Root es bearbeiten kann. Das bedeutet, dass kein anderer Benutzer diese Datei bearbeiten und ihren Weg ändern kann.

 sudo gedit /home/minnie/.bash_profile

Bearbeiten Sie entweder den vorhandenen "Pfad =" oder fügen Sie die folgende Zeile hinzu:

 Pfad = $ Home / Bin 

Speicher die Datei. Brunnen Ändern Sie den Besitzer der Datei zum root mit der Chown Kommando und Ändern Sie die Dateiberechtigungen Verwendung der Chmod Befehl. Nur der Root-Benutzer kann die Datei bearbeiten.

 Sudo Chown Root: Wurzel /Home/minnie/.bash_profile
 sudo chmod 755 /home/minnie/.bash_profile
 ls -l /home/minnie/.bash_profile

Das nächste Mal, wenn der Benutzer MINNIE eingeschaltet ist, zeigt ihr Pfad auf einen einzelnen Ordner.

Unser eingeschränkter Benutzer MINNIE kann nur Bash-eingebaute Befehle verwenden Echo , alias , und Ausloggen . Sie kann nicht einmal benutzen ls. Schnitte

 ls 

Wir müssen unseren Würgegriff ein wenig nachlassen, wenn wir möchten, dass sie in der Lage sind, dass sie überhaupt etwas nützliches tun können. Wir erstellen einige symbolische Links aus dem Verzeichnis von Minnies "Bin" an die Befehle, die wir möchten, dass MINNIE verwendet werden kann.

 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 

Wenn Minnie NEXT anmeldet, wird sie feststellen, dass sie die Bash-integrierten Befehle verwenden kann, sowie diese Befehle, mit denen Sie verknüpft sind.

 ls 
 Pinky Dave 
 Verfügbarkeit 

Bestehende Benutzer einschränken

Wir haben Minner als neuer Benutzer erstellt. Zu Ändern Sie die Hülle eines vorhandenen Benutzer, wir können die verwenden -S (Shell) Option der usermod. Befehl.

 sudo usermod -s / bin / rbash mary 

Du kannst den ... benutzen weniger Befehl auf der Datei "/ etc / passwd", um schnell zu sehen, welche Shell als Standardhülle des Benutzers eingestellt ist.

 Weniger / etc / passwd 

Wir können sehen, dass der Benutzer Mary die eingeschränkte Shell verwenden wird, wenn sie sich als nächstes anmeldet.

Denken Sie daran, die anderen Änderungen anzuwenden, um ihre zu beschränken $ Pfad Umgebungsvariable und zum Festlegen der Befehle, die Sie möchten, dass der Benutzer mary ausführen kann.

Skripts einschränken.

Ein regelmäßiger, uneingeschränkter Benutzer kann Skripts starten, die in einer eingeschränkten Hülle ausgeführt werden. Kopieren Sie die folgenden Zeilen und fügen Sie sie in einen Editor ein. Speichern Sie die Datei als "eingeschränkt.sh" und schließen Sie den Editor.

 #! / Bin / bash

# Skript beginnt in normaler Bash-Shell
echo "## im uneingeschränkten Modus! ##"

Echo
Echo "Stromverzeichnis:" PWD "
Echo "Verzeichnis ändern"
CD / usr / teilen
Echo "Jetzt im Verzeichnis:` pwd` "
ECHO "Wechseln zu Home Directory"
CD ~.
Echo "Jetzt im Verzeichnis:` pwd` "

# Einstellungsmodus einstellen
Set -r.

Echo
echo "## im eingeschränkten Modus! ##"

Echo
Echo "Stromverzeichnis:" PWD "
Echo "Verzeichnis ändern an / home /"
CD / HOME.
Echo "Immer noch im Verzeichnis:` pwd` "

Echo
Echo "versuchen, eine andere Hülle zu starten"
/ bin / bash

Echo
Echo "versuchen, die Befehlsausgabe neu umleiten"
ls -l $ home & gt; my_files.txt.
cat my_files.txt.
Echo

Ausfahrt 0 

Wir müssen das verwenden Chmod Befehl mit dem. + X. (EXECUTE) Flag, um das ausführbare Skript auszuführen.

 chmod + x eingeschränkt 

Der erste Teil des Skripts läuft in einer normalen Hülle.

 ./ eingeschränkt.SH 

Der zweite Teil des Skripts - das Bit, nachdem die "SET -R -R" -Linie in einer eingeschränkten Hülle ausgeführt wird.

Keiner der versuchten Aktionen gelingt im eingeschränkten Teil des Skripts.

Ein gesamtes Skript kann durch Hinzufügen in einer eingeschränkten Hülle ausgeführt werden -R zur ersten Zeile:

! # / Bin / bash -r 

Erinnere dich an Houdini

Eingeschränkte Muscheln sind nützlich, aber nicht völlig unfehlbar. Ein ausreichend erfahrener Benutzer kann ihnen möglicherweise entgehen können. Aber wenn Sie vernünftig verwendet werden, sind sie eine nützliche Möglichkeit, ein Satz von Einschränkungen für ein bestimmtes Konto festzulegen.


Linux - Die beliebtesten Artikel

Die besten Linux-Distributionen ohne Systemd

Linux Feb 24, 2025

Bmj / shutherstock.com. Wenn die dominanten Linux-Distributionen angenommen haben Systemd. , Dessingierer Gabelverteilungen und begannen neue Projek..


So konfigurieren oder deaktivieren Sie Linux Mint Update-Benachrichtigungen

Linux Jul 9, 2025

Hatte genug von linux mints ärgerliche Update-Benachrichtigungen? Oder vielleicht sind Sie so besorgt, dass Sie auf dem neuesten Stand bleiben möchten, dass Sie sie noch mehr sehen möch..


Was ist neu in Linux Mint 20.2 "UMA"

Linux Jul 8, 2025

Linux Mint, einer der mehr Beliebte Linux-Distributionen. , hat Version 20.2 veröffentlicht, genommene "UMA". Es verfügt über neue Funktionen, aufgerüstete Internale und a..


Wie man Ubuntu Linux aktualisiert

Linux Aug 27, 2025

tomeqs / shacktock.com. Benötigen Sie die neueste und größte in der Ubuntu-Software? Sie müssen kein Linux Pro sein. Lesen Sie weiter, um herauszufinden,..


Was ist neu in Elementary OS 6 "odin"

Linux Aug 14, 2025

Elementary, Inc. Es gibt viele Linux-Distributionen. (Distros) Es gibt jedoch nur wenige, die dieses explizite Ziel haben, andere als elementares Betri..


Was ist neu in Ubuntu 21.10 'IMPIL INDRI'

Linux Oct 14, 2025

Kanonisch Ubuntu 21.10 "Imprish Indri" war freigegeben am 14. Oktober 2021. Es verfügt über Gnome 40. , ein neuer Kernel und aktualisiert..


So finden Sie den PID eines Linux -Prozesses mit PIDOF oder PGREP

Linux Nov 15, 2024

Die Arbeit mit einem Linux -Prozess bedeutet häufig, seine Prozess -ID oder PID zu kennen. Es ist eine eindeutige Nummer, die jeder laufenden Software gegeben hat. Hier sind zwei Möglichkeite..


So listen Sie Umgebungsvariablen unter Linux auf

Linux Oct 31, 2025

Unter Linux halten Umgebungsvariablen wichtige Werte und Einstellungen. Skripte, Anwendungen und Shells lesen diese Werte, häufig, um sich selbst zu konfigurieren oder ihr Verhalten zu steuern..


Kategorien