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
CDum 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.