rbash における制限事項 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− #--------------------------------------------------------------------------------------------- # rbash の制限事項 #--------------------------------------------------------------------------------------------- rbash は制限付きのbash シェルです。対話式bash を起動する際に次のオプションを付ければrbash は有効となる。 /bin/bash --restricted もしくは /bin/bash -r 具体的にはrbash ではシェルの機能のうち、次の機能を制限している。 ・cd を使ってディレクトリを変更すること ・SHELL, PATH, ENV, BASH_ENV の値の設定や設定取り消しを行なうこと ・/ を含むコマンド名を指定すること ・組み込みコマンド . の引き数として / を含むファイル名を指定すること ・組み込みコマンド hash に対するオプション -p の引数として / を含むファイル名を指定すること ・起動時にシェル環境から関数定義をインポートすること ・起動時にシェル環境から SHELLOPTS の値を展開すること ・リダイレクション演算子 >, >|, <>, >&, &>, >> を使ってリダイレクトを行なうこと ・組み込みコマンド exec を用いて、シェルを別のコマンドに置き換えること ・組み込みコマンド enable の -f・-d オプションを使い組み込みコマンドを追加・削除すること ・組み込みコマンド command に -p オプションを指定すること #--------------------------------------------------------------------------------------------- # rbash による運用方法 #--------------------------------------------------------------------------------------------- rbash は通常、一般ユーザーのシェル環境を制限したい時に利用します。おおむねサーバーに次の変更を加えることで大幅にシェル環境を制限することができます。 ● .bash_profile .bash_login .profile .bashrc の機能を無効とする bash を起動する際、/bin/bash --restricted --noprofile --norc とすることでユーザーホームディレクトリに配置する.bash_profile .bash_login .profile .bashrc ファイルを無効とすることができます。 シェルの初期設定は/etc/profile でのみ行い、ユーザーがシェル環境を設定・変更することは一切できなくなります。 ● ユーザーが利用できるコマンドを制限する rbash ではPATH 環境変数の変更ができない。export PATH=/home/bin の記述を/etc/profile に書いておき、/home/bin 配下にユーザーに許可するコマンドへのシンボリックリンクを作成することでユーザーが利用できるコマンドが制限される。 例えば、--norc を設定しない場合、.bashrc にPATH を設定できてしまいセキュリティー上問題がある。