システム管理者は、自分自身やユーザーによって意図しないエラーが引き起こされないように防止できます。
制限されたシェルをユーザーに割り当てることもできます。システムのうち各人の作業に必要な部分だけをユーザーに提供するという方法でシェル機能を制限すると、ユーザーエラーを避けることができます。実際、慎重に設定すれば、作業を能率的に行う上で必要な部分以外にユーザーがアクセスできないように制限できます。
そのユーザーがアクセスする必要がないファイルには、限定的なアクセス権を設定できます。
よく注意して、PATH 変数を正しく設定してください。そうしなければ、だれかが持ち込んだプログラムを誤って実行してしまい、セキュリティーが危険にさらされる可能性があります。データを壊したりシステムを損傷したりするおそれがあります。このようなプログラムは、「トロイの木馬」と呼ばれます。たとえば、公開ディレクトリの中に別の su プログラムが置かれていると、システム管理者が気づかずに実行してしまう可能性があります。このようなスクリプトは正規の su コマンドとまったく同じに見えます。このようなスクリプトは実行後に自らを削除してしまうため、トロイの木馬が実際に実行されたという証拠はほとんど残りません。
PATH 変数はログイン時に自動的に設定されます。このパスは、.bashrc や /etc/profile などの初期設定ファイルを通して設定されます。現在のディレクトリ (.) への検索パスを最後に指定すれば、トロイの木馬のようなタイプのプログラムを実行するのを防ぐことができます。root アカウントの PATH 変数には現在のディレクトリを一切含めないようにしてください。
標準シェルを使用すると、ユーザーはファイルを開く、コマンドを実行するなどの操作を行うことができます。制限付きシェルを使用すると、ディレクトリの変更やコマンドの実行などのユーザー能力を制限できます。制限付きシェルは、/usr/lib/rsh コマンドで呼び出されます。制限付きシェルは、リモートシェル /usr/sbin/rsh ではありません。
標準のシェルと異なる点は次のとおりです。
ユーザーのアクセスはホームディレクトリ内に限定されるため、ユーザーは cd コマンドを使用してディレクトリを変更できません。したがって、システムファイルを閲覧することはできません。
ユーザーは PATH 変数を変更できないため、システム管理者によって設定されたパスのコマンドしか使用できません。さらに、完全なパス名を使ってコマンドやスクリプトを実行することもできません。
制限付きシェルでは、ユーザーが使用できるシステムファイルを制限できます。このシェルは、特定のタスクを実行するユーザーのために限られた環境を作成します。ただし、制限付きシェルは完全にセキュアなわけではなく、あくまでも経験の少ないユーザーが誤ってシステムファイルを損傷するのを防止することことが目的です。
制限付きシェルについては、man -s1m rsh コマンドを使用して rsh(1M) のマニュアルページを参照してください。
Oracle Solaris はマルチユーザー環境なので、ファイルシステムのセキュリティーは、システムのもっとも基本的なセキュリティーリスクです。ファイルの保護には、従来の UNIX のファイル保護と、より確実なアクセス制御リスト (ACL) との両方が使用できます。
あるユーザーには一部のファイルの読み取りを許可したり、別のユーザーには一部のファイルを変更または削除するアクセス権を許可したりできます。一方、あるデータを、どのユーザーからも読み取られないよう設定することもできます。Oracle Solaris 11.2 でのファイルのセキュリティー保護とファイル整合性の検証 の第 1 章ファイルアクセスの制御では、ファイルアクセス権の設定方法について説明されています。