rsh, restricted_shell - 制限付きシェルのコマンドインタプリタ
/usr/lib/rsh [-acefhiknprstuvx] [argument]...
rsh は、標準のコマンドインタプリタ sh の制限されたバージョンであり、sh より制御された機能を持つ実行環境へのログインを制限するために使用されます (完全な説明および使用方法については、ksh93(1) を参照してください)。コマンドインタプリタ sh は Bourne シェルではなく、ksh93 を参照します。/usr/bin/sh は ksh93 へのリンクです。
シェルは、呼び出されると環境変数 SHELL を調べます。この環境変数が存在していて、その値のファイル名部分が rsh であれば、シェルは制限付きシェルとなります。
rsh の機能は、以下の動作ができない点を除き sh と同一です。
ディレクトリの変更 (cd(1) を参照)
$PATH の値の設定
/ を含むパスまたはコマンド名の指定
出力先のリダイレクト (> および >>)
これらの制限は、.profile の解釈後に有効となります。
制限付きシェルは、次のいずれかの方法で呼び出せます。
/etc/passwd ファイルの最後のエントリのファイル名部分を rsh と記述する (passwd(4) を参照)
環境変数 SHELL が存在していて、その値のファイル名の部分が rsh である。環境変数 SHELL は、 .login ファイル内に設定されている必要がある
シェルの呼び出し時に、 引数 0 のファイル名の部分が rsh である
シェルを –r オプション付きで呼び出す
実行するコマンドがシェル手続きである場合は、rsh は sh を呼び出して、コマンドを実行します。したがって、利用できるコマンドの種類には制限はありますが、一般ユーザーは標準シェルの全機能を利用できるシェル手続きを使用することができます。このスキームは、一般ユーザーが同じディレクトリで書き込み権と実行権を持っていないことを想定しています。
.profile の作成者 (profile(4) を参照) が、確実な設定処理を実行して ユーザーを適切なディレクトリ (おそらく、ログインディレクトリではない) に置くことにより、ユーザーの動作を完全に制御できるという点が、これらの規約の実際の効果となります。
システム管理者は、制限付きシェルで安全に起動できるコマンドのディレクトリ (つまり /usr/rbin) を設定することがよくあります。 システムによっては、制限付きエディタ red を提供するものもあります。
構文エラーなどのエラーを検出すると、シェルは 0 以外の終了ステータスを返します。シェルを非対話型で使用している場合、シェルファイルの実行は中止されます。それ以外の場合は、シェルは最後に実行されたコマンドの 終了ステータスを返します。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
Intro(1), cd(1), login(1), rsh(1), sh(1), ksh93(1), exec(2), passwd(4), profile(4), attributes(5)
制限付きシェル /usr/lib/rsh を、リモートシェル /usr/bin/rsh と混同しないように注意してください。リモートシェルに関しては rsh(1) を参照してください。