rbash steht für die eingeschränkte Bash-Shell. In UNIX wird wie beim Erstellen eines Benutzers eine Standard-Shell (/bin/bash) zugewiesen. Ein Benutzer kann sich also in die Verzeichnisse von jedem bewegen, um diese Situation zu vermeiden, können wir einem Benutzer die eingeschränkte Shell zuweisen, die eingeschränkte Shell ist genau wie eine Jail-ähnliche Umgebung oder Chroot-Umgebung.
Warum Rbash?
Wenn bash mit dem Namen rbash gestartet wird oder beim Aufruf die Option -r angegeben wird, wird die Shell eingeschränkt. Eine eingeschränkte Shell wird verwendet, um eine Umgebung einzurichten, die kontrollierter ist als die Standard-Shell. Es verhält sich identisch mit Bash, mit der Ausnahme, dass Folgendes nicht erlaubt ist oder nicht ausgeführt wird:
- Verzeichniswechsel mit CD
- Setzen oder Deaktivieren der Werte von SHELL, PATH, ENV oder BASH_ENV
- Befehlsnamen angeben, die / enthalten
- Angeben eines Dateinamens mit einem / als Argument für den eingebauten Befehl
- Angeben eines Dateinamens mit einem Schrägstrich als Argument für die Option -p des eingebauten Hash-Befehls
- Importieren von Funktionsdefinitionen aus der Shell-Umgebung beim Start
- Parsen des Wertes von SHELLOPTS aus der Shell-Umgebung beim Start
- Umleitung der Ausgabe mit den Umleitungsoperatoren>,>|, <>,>&, &> und>> Umleitung
- den eingebauten Befehl exec verwenden, um die Shell durch einen anderen Befehl zu ersetzen
- Integrierte Befehle mit den Optionen -f und -d zum integrierten Befehl enable hinzufügen oder löschen
- den Befehl enable builtin verwenden, um deaktivierte Shell-Builts zu aktivieren
- Angabe der Option -p für den integrierten Befehl des Befehls.
- Ausschalten des eingeschränkten Modus mit set +r oder set +o limited.
So stellen Sie eine eingeschränkte Shell ein
Stellen Sie die gewünschte Umgebung für einen bestimmten Benutzer ein und legen Sie die Startdatei ab:$HOME/.bash_profile, wie unten gezeigt:
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH bash -r
Melden Sie sich jetzt mit dem Benutzer an und versuchen Sie, die Verzeichnisse zu ändern.
$ cd /etc/ bash: cd: restricted $ cd /tmp/ bash: cd: restricted
Erstellen Sie zum Einstellen der eingeschränkten Shell für alle Benutzer einen symbolischen Link von /bin/bash zu /bin/rbash:
# cd /bin # ln -s bash rbash