/ bin / rbashとは何ですか?


14

共通シェルプログラムについて学んでいました

を実行するとcat /etc/shells、次のように表示されます。

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

/bin/rbashここは何ですか?スクリプトで使用されていますか?


6
どの部分man rbashが不明ですか?
スティグヘマー

1
@StigHemmer。しなかった。man rbashまた、詳細情報を提供します。ありがとう。
デイジー

3
マニュアルページを読むことは、常にツールを理解する最初の試みでなければなりません。また、正しいバージョンについて読んでいることを確認するために、表示されるマシンでそれを読む必要があります。

回答:


16

ウィキペディアから

制限付きシェルは、対話型ユーザーセッション、またはその内部で実行されるシェルスクリプトで使用可能な機能の一部を制限するUnixシェルです。セキュリティの追加レイヤーを提供することを目的としていますが、完全に信頼できないソフトウェアの実行を許可するには不十分です。制限モードの操作は、元のBourneシェル[1]とそれに対応する後のbash [2]およびKornシェル[3]にあります。場合によっては、システム全体へのアクセスを制限するために、制限されたシェルがchroot jailと組み合わせて使用​​されます。

制限付きシェルに適用される制限については、Soren Aの回答を参照してください。

bash制限モードで実行できます

bash -r
bash --restricted

私のシステムでは:

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

だから/bin/rbash私が走るなら、私は走っているbash

だが

bashを直接指すrbashという名前のリンクを作成するだけで十分です。これは、-rまたは--restricted オプションなしでbashを直接呼び出しますが、bashはrbashを介して呼び出されたことを認識し、制限付きシェルとして起動します。

簡単にテストできるように:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted

1
多くの制限があるようです。それではどのように役立ちますか?スクリプトで使用しますか?
デイジー

3
特定のディレクトリにトラップするユーザーのデフォルトシェルとして設定できます。たとえば、@ passa
Zanna

2
スクリプティングではない@passa、および制限付きシェルは、スクリプティングにはまったく役に立ちません。スクリプトで実行されるアクションを知っている、または決定できるので、スクリプト作成に制限付きシェルを使用しても意味がありません。
ムル

@muruわかりました。したがって、これは、zannaが彼女のコメントで言った目的に使用できます。
デイジー

1
これは、他のユーザーが危険なタスクを実行するのを防ぐことができるため、システム管理者にとって役立ちます。これは、エンドユーザーにとってはあまり有用ではありません。

17

rbashは、bashの制限された(機能が制限された)バージョンです。この記事を参照してください:https : //en.wikipedia.org/wiki/Restricted_shell

記事から:

次の操作は、制限付きシェルでは許可されていません。

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

bashは、次のようなさらなる制限を追加します。

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

制限付きKornシェルの制限は、制限付きBourneシェルの制限とほとんど同じです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.