Zugriff auf die Linux-Kommandozeile einschränken
Mit rbash und GNU Rush schränken Sie auf Linux-Systemen den Zugriff auf die Shell ein. So können Sie verhindern, dass Anwender versehentlich Schaden anrichten.
- Tim Schürmann
Meldet sich Alice per SSH auf einem entfernten Server an, landet sie dort in einer Shell, mit der sich erstaunlich viel anstellen lässt. Falsch gesetzte Zugriffsrechte können dann verheerende Folgen haben. Im schlimmsten Fall kann Alice die Konfigurationsdateien unter /etc einsehen oder per scp
auf ihren Rechner holen. Obendrein öffnet der Server eine Shell in Situationen, in denen man es nicht vermuten würde. Dazu zählt beispielsweise das Tool scp
: Um eine Datei zu kopieren, öffnet es via SSH eine Verbindung zum Server, der dann dort mit der Standard-Shell des Benutzers den Befehl scp -r
aufruft. Ähnlich problematisch sind rsync
und Zugriffe auf ein Git-Repository. Doch der Zugriff lässt sich glücklicherweise einschränken.
Bash
Viele Linux-Systeme verwenden standardmäßig die Bash. Ruft man sie mit dem Parameter -r
beziehungsweise --restricted
oder als rbash auf, verwandelt sie sich in eine sogenannte Restricted Shell. Die einfache Benutzerin Alice darf dann unter anderem nicht mehr mit cd
in ein anderes Verzeichnis wechseln und Daten umleiten (über die Operatoren >
, >
|, <>
, >&
, &>
und >>
). Des Weiteren sind die Umgebungsvariablen SHELL
, PATH
, ENV
und BASH_ENV
in Stein gemeißelt. Stark eingeschränkt ist auch, welche Programme man ausführen darf. Kommandos dürfen den Schrägstrich /
nicht enthalten, die Shell lässt sich nicht via exec
-Befehl gegen ein anderes Kommando austauschen und beim command-Befehl, der ein gegebenes Kommando schlicht ausführt, ohne es weiter nachzuschlagen, ist der Parameter -p
blockiert, der einen Standardpfad für auszuführende Programme verwendet. Sämtliche Einschränkungen listet man bash
ganz am Ende auf. Neben der Bash lassen sich auch die Bourne Shell und die Korn-Shell (Ksh) in eine Restricted Shell verwandeln.
Um Alice auf eine Restricted Shell zu beschränken, legen Sie rbash
als ihre Standard-Shell fest. Dazu setzen Sie in der Datei /etc/passwd
am Ende der Zeile für Alice die Shell auf rbash
: