Was ist / bin / rbash?

14

Ich habe etwas über Common Shell-Programme gelernt .

Wenn ich renne cat /etc/shells, zeigt es:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

Was ist /bin/rbashhier Wird es in Skripten verwendet?

Gänseblümchen
quelle
6
Welcher Teil von man rbashist unklar?
Stig Hemmer
1
@StigHemmer. Ich habe es nicht getan. man rbashgibt mir auch detailinformationen. Vielen Dank.
Daisy
3
Das Lesen der Manpage sollte immer der erste Versuch sein, ein Tool zu verstehen. Sie sollten es auch auf dem Computer lesen, auf dem es angezeigt wird, um sicherzustellen, dass Sie die richtige Version lesen.

Antworten:

16

Aus Wikipedia

Die eingeschränkte Shell ist eine Unix-Shell, die einige der Funktionen einschränkt, die einer interaktiven Benutzersitzung oder einem darin ausgeführten Shell-Skript zur Verfügung stehen. Es ist beabsichtigt, eine zusätzliche Sicherheitsebene bereitzustellen, reicht jedoch nicht aus, um die Ausführung von vollständig nicht vertrauenswürdiger Software zu ermöglichen. Eine Operation im eingeschränkten Modus befindet sich in der ursprünglichen Bourne-Shell [1] und ihrer späteren Entsprechung bash [2] und in der Korn-Shell. [3] In einigen Fällen wird eine eingeschränkte Shell in Verbindung mit einem Chroot-Gefängnis verwendet, um den Zugriff auf das gesamte System zu beschränken.

Siehe Soren Eine Antwort für die Einschränkungen , die auf eingeschränkte Schalen gelten.

Sie können bashim eingeschränkten Modus ausgeführt werden

bash -r
bash --restricted

Auf meinem System:

$ file /bin/rbash
/bin/rbash: symbolic link to bash

Also, wenn ich renne /bin/rbash, renne ichbash

ABER

Es reicht aus, einen Link namens rbash zu erstellen, der direkt auf bash verweist. Obwohl dies Bash direkt ohne die Optionen -roder aufruft, --restrictederkennt Bash, dass es durch rbash aufgerufen wurde und als eingeschränkte Shell angezeigt wird.

Wie Sie leicht testen können:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted
Zanna
quelle
1
Scheint viele Einschränkungen. Wie ist es dann hilfreich? Wird es in Skripten verwendet?
Daisy
3
Es könnte als Standard-Shell für einen Benutzer festgelegt werden, den Sie in einem bestimmten Verzeichnis abfangen möchten, z. B. @passa
Zanna
2
@passa, das ist kein Scripting, und eingeschränkte Shells sind für das Scripting ausgesprochen nutzlos. Da Sie wissen oder bestimmen können, welche Aktionen in einem Skript ausgeführt werden, ist es nicht sinnvoll, eine eingeschränkte Shell für die Skripterstellung zu verwenden.
muru
@muru Okay. Dies könnte also zu dem Zweck verwendet werden, den Zanna in ihrem Kommentar sagte.
Gänseblümchen
1
Dies ist für einen Systemadministrator hilfreich, da dadurch andere Benutzer daran gehindert werden können, gefährliche Aufgaben auszuführen. Es ist für den Endbenutzer etwas weniger nützlich.
17

rbash ist eine eingeschränkte Version von bash. Siehe diesen Artikel: https://en.wikipedia.org/wiki/Restricted_shell

Aus dem Artikel:

Die folgenden Vorgänge sind in einer eingeschränkten Shell nicht zulässig:

changing directory
specifying absolute pathnames or names containing a slash
setting the PATH or SHELL variable
redirection of output

Bash fügt weitere Einschränkungen hinzu, einschließlich:

limitations on function definitions
limitations on the use of slash-ed filenames in bash builtins

Die Einschränkungen in der eingeschränkten Korn-Shell entsprechen weitgehend denen in der eingeschränkten Bourne-Shell.

Soren A
quelle