共通シェルプログラムについて学んでいました。
を実行するとcat /etc/shells
、次のように表示されます。
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/rbash
ここは何ですか?スクリプトで使用されていますか?
man rbash
また、詳細情報を提供します。ありがとう。
共通シェルプログラムについて学んでいました。
を実行するとcat /etc/shells
、次のように表示されます。
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/rbash
ここは何ですか?スクリプトで使用されていますか?
man rbash
また、詳細情報を提供します。ありがとう。
回答:
ウィキペディアから
制限付きシェルは、対話型ユーザーセッション、またはその内部で実行されるシェルスクリプトで使用可能な機能の一部を制限する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
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シェルの制限とほとんど同じです。
man rbash
が不明ですか?