特権のないまたは権利のないという用語は Oracle Solaris には適用されません。通常のユーザープロセスを含む Oracle Solaris のすべてのプロセスには、少なくとも何らかの特権またはユーザー権利 (承認など) が設定されています。Oracle Solaris がすべての UNIX プロセスに付与する特権の基本セットについては、プロセス権管理を参照してください。
Oracle Solaris では次の要素によってユーザー権利が適用されます。これらの権限は、許容セキュリティーポリシーまたは制限セキュリティーポリシーを適用するように構成できます。
承認 – ユーザーまたは役割が、追加の権利を必要とするクラスのアクションを実行できるようにする許可です。たとえばデフォルトのセキュリティーポリシーでは、コンソールユーザーに対し solaris.device.cdrw 承認が付与されます。この承認によってユーザーは CD-ROM デバイスの読み取りと書き込みが行えます。承認のリストについては、auths list コマンドを使用してください。承認はカーネルではなく、ユーザーアプリケーションレベルで適用されます。ユーザー承認に関する詳細を参照してください。
特権 – コマンド、ユーザー、役割、または特定のリソース (ポートや SMF メソッドなど) に付与できる権利です。特権はカーネルで実装されます。たとえば、proc_exec 特権によってプロセスは execve() を呼び出すことができます。通常のユーザーには基本特権が与えられます。自分の基本特権を確認するには、ppriv -vl basic コマンドを実行します。詳細は、プロセス権管理を参照してください。
セキュリティー属性 – プロセスが操作を実行できるようにする属性 (権利の実装)。標準的な UNIX 環境では、セキュリティー属性によって、通常のユーザーには禁止されている操作をプロセスで実行できるようになります。たとえば、setuid プログラムと setgid プログラムはセキュリティー属性を持ちます。権利モデルでは、setuid および setgid プログラムに加えて、承認と特権がセキュリティー属性です。これらの属性、つまり権利は、ユーザーに割り当てることができます。たとえば、solaris.device.allocate 承認が与えられたユーザーは、デバイスを独占的に使用するためにそのデバイスの割り当てを行うことができます。特権をプロセスに割り当てることができます。たとえば、file_flag_set 特権を持つプロセスは、変更不可能な、リンク解除できない、または追加のみのファイル属性を設定できます。
セキュリティー属性によって権利を制限することもできます。たとえば access_times および access_tz セキュリティー属性は、特定のセキュリティー関連操作が許可される日時と、オプションで時間帯を設定します。ユーザーを制限するには、直接制限するか、またはこれらのキーワードが含まれている認証権利プロファイルにユーザーを割り当てます。詳細は、user_attr(4) のマニュアルページを参照してください。
特権付きアプリケーション – 権利を確認してシステム制御をオーバーライドできるアプリケーションまたはコマンド。詳細は、権利を確認するアプリケーションおよびOracle Solaris 11 セキュリティー開発者ガイド を参照してください。
権利プロファイル – 役割またはユーザーに割り当てることができる権利の集合です。権利プロファイルには、承認、直接割り当てられた特権、セキュリティー属性を持つコマンド、およびほかの権利プロファイルを含めることができます。別のプロファイル内に存在するプロファイルは、補助権利プロファイルと呼ばれます。権利プロファイルは、権利をグループ化する手段として便利です。ユーザーに直接割り当てるか、または役割と呼ばれる特殊アカウントに割り当てることができます。権利プロファイルのコマンドを使用できるのは、プロセスで権利が認識される場合に限ります。また、パスワードの入力が必要な場合があります。あるいは、デフォルトでパスワード認証が提供されることがあります。権利プロファイルの詳細を参照してください。
役割 – 特権付きアプリケーションを実行するための特殊な識別情報です。この特殊な識別情報を取得できるのは、あらかじめ割り当てられたユーザーだけです。役割により実行されるシステムでは、初期構成後にはスーパーユーザーが不要となることがあります。役割の詳細を参照してください。
次の図に、ユーザー権利とプロセス権利がどのように連携するかを示します。
図 1-2 ユーザー権利とプロセス権利の連携
次の図は、Network Security 役割と Network Security 権利プロファイルを使用して、割り当てられた権利がどのように機能するかを示します。
図 1-3 ユーザー権利とプロセス権利の割り当ての例
Network Security 役割は、IPsec、wifi、およびネットワークリンクの管理に使用します。この役割は、ユーザー jdoe に割り当てられています。jdoe は、この役割に切り替えてから役割のパスワードを指定することによって、この役割になることができます。管理者は、この役割で役割のパスワードではなくユーザーパスワードでの認証を可能にするようにできます。
この図では、Network Security 権利プロファイルが Network Security 役割に割り当てられています。Network Security 権利プロファイルには、Network Wifi Security、Network Link Security、および Network IPsec Management という、順番に評価される補助プロファイルが含まれています。これらの補助プロファイルには、役割の主要なタスクを実行する権利が含まれています。
Network Security 権利プロファイルには、直接割り当てられた 3 つの承認と、セキュリティー属性を持つ 2 つのコマンドがありますが、直接割り当てられた特権はありません。補助権利プロファイルには、直接割り当てられた承認があり、それらの 2 つにはセキュリティー属性を持つコマンドがあります。
jdoe が Network Security 役割を引き受けると、シェルがプロファイルシェルに変化します。プロファイルシェルプロセスは権利の使用を評価できるため、jdoe はネットワークセキュリティーを管理できます。