割り当てられた権利を評価するかどうかは、プロセスが実行されるシェル、ネームサービスのスコープ、および検索順序の影響を受けます。権利を評価できないプロセスは失敗します。権利割り当ての確認の補足情報については、権利に関するトラブルシューティングを参照してください。
ユーザーと役割は、プロファイルシェルから特権付きアプリケーションを実行できます。プロファイルシェルは、権利を認識する特殊シェルです。管理者は、プロファイルシェルをログインシェルとしてユーザーに割り当てることができます。そうでない場合は、そのユーザーが役割を引き受けるために pfexec コマンドまたは su コマンドを実行したときに、プロファイルシェルが起動されます。Oracle Solaris では、どのシェルにも、対応するプロファイルシェルがあります。プロファイルシェルの一覧については、pfexec(1) のマニュアルページを参照してください。
権利プロファイルが直接割り当てられており、ログインシェルがプロファイルシェルではないユーザーが、割り当てられている特権付きコマンドを実行するには、プロファイルシェルを開く必要があります。認証権利プロファイルが割り当てられているユーザーと役割は、コマンド実行前に認証 (パスワード入力) するように求められます。操作性とセキュリティーに関する考慮事項については、権利の割り当てにおける考慮事項を参照してください。
ネームサービススコープは、割り当てられている権利がいつ使用可能になるかに影響します。役割の適用範囲は、個々のホストに限定されることがあります。また、LDAP などのネームサービスからサービスを受けるすべてのホストが適用範囲に含まれることもあります。あるシステムのネームサービスの適用範囲は、ネームスイッチサービス svc:/system/name-service/switch で指定されます。検索は、最初に一致した時点で停止します。たとえば、権利プロファイルが 2 つのネームサービススコープに存在する場合、最初のネームサービススコープに含まれるエントリだけが使用されます。最初に一致したものが files の場合、役割の適用範囲はローカルホストに限定されます。ネームサービスについては、nsswitch.conf(4) のマニュアルページ、Oracle Solaris 11.3 ディレクトリサービスとネームサービスでの作業: DNS と NIS、およびOracle Solaris 11.3 ディレクトリサービスとネームサービスでの作業: LDAPを参照してください。
ユーザーまたは役割に対し、セキュリティー属性を直接割り当てるか、または権利プロファイルを介して割り当てることができます。検索の順序は、使用されるセキュリティー属性の値に影響を及ぼします。その属性の最初に見つかったインスタンスの値が使用されます。
ユーザーがログインすると、次に示す検索順序で権利が割り当てられます。
useradd および usermod コマンドを使ってユーザーに直接割り当てられる権利。可能な権利割り当てのリストについては、user_attr データベースを参照してください。
useradd および usermod コマンドを使ってユーザーに割り当てられる権利プロファイル。これらの割り当ては順番に検索されます。
この順序は、認証プロファイルリストの最初のプロファイル、その補助プロファイル、認証プロファイルリストの 2 番目のプロファイル、その補助プロファイル、のようになります。累積される auths 値を除き、最初のインスタンスの値がシステムで使用される値になります。権利プロファイルに割り当てることができる属性には、ユーザーに割り当てることができるすべての権利と、補助プロファイルが含まれます。リストについては、user_attr データベースを参照してください。
次に、再認証を必要としない権利プロファイルが同様の方法で検索されます。
Console User 権利プロファイルの値。詳細は、権利プロファイルのリファレンスを参照してください。
Stop 権利プロファイルが割り当てられた場合、セキュリティー属性の評価は停止します。Stop プロファイルが割り当てられたあとは属性は一切割り当てられません。Stop プロファイルは、Console User 権利プロファイルの後、policy.conf ファイル内のほかのセキュリティー属性 (AUTHS_GRANTED など) の前に評価されます。詳細は、権利プロファイルのリファレンスを参照してください。
policy.conf ファイル内の Basic Solaris User 権利プロファイル の値。
policy.conf ファイル内の AUTHS_GRANTED の値。
policy.conf ファイル内の AUTH_PROFS_GRANTED の値。
policy.conf ファイル内の PROFS_GRANTED の値。
policy.conf ファイル内の PRIV_DEFAULT の値。
policy.conf ファイル内の PRIV_LIMIT の値。
システム制御をオーバーライドするアプリケーションとコマンドは、特権付きアプリケーションとみなされます。アプリケーションは、UID=0 のようなセキュリティー属性、特権、および承認によって特権化されます。
root (UID=0) やその他の特殊な UID または GID を確認する特権付きアプリケーションは、UNIX 環境に古くから存在します。権利プロファイルのメカニズムによって、特定の ID を必要とするコマンドを分離できます。任意のユーザーがアクセスできるコマンドの ID を変更する代わりに、UID が割り当てられたコマンドを権利プロファイル内に配置できます。その権利プロファイルを持つユーザーまたは役割であれば、スーパーユーザー以外でもその UID としてプログラムを実行できます。
ID は実 ID または 実効 ID として指定できます。実効 ID を割り当てた場合は、実 ID より優先されます。実効 ID は、ファイルアクセス権ビットの setuid 機能に相当します。実行 ID は、監査のために UID の識別も行います。ただし、root の実 UID を要求するシェルスクリプトやプログラムのために、実 ID も設定できます。たとえば、reboot コマンドには実効 UID ではなく、実 UID が必要です。
特権付きアプリケーションは、特権の使用を確認できます。権利プロファイルメカニズムを使用すると、セキュリティー属性を必要とする特定のコマンドの特権を指定できます。次に、セキュリティー属性が割り当てられたコマンドを権利プロファイル内に分離できます。この権利プロファイルを持つユーザーまたは役割は、そのコマンドに必要な特権だけを使用してコマンドを実行できます。
Kerberos コマンド (kadmin、kprop、kdb5_util など)
ネットワークコマンド (ipadm、routeadm、snoop など)
ファイルコマンドとファイルシステムコマンド (chmod、chgrp、mount など)
プロセスを制御するコマンド (kill、pcred、rcapadm など)
特権を持つコマンドを権利プロファイルに追加するには、権利プロファイルを作成する方法および profiles(1) のマニュアルページを参照してください。特定のプロファイル内の特権を確認するコマンドを判断するには、Oracle Solaris の権利の一覧表示を参照してください。
次を含む一部の Oracle Solaris コマンドは、承認を確認します。
監査管理用のコマンド (auditconfig、auditreduce など)
プリンタ管理用のコマンド (cupsenable、lpadmin など)
バッチジョブコマンド (at、atq、batch、crontab など)
デバイス向けのコマンド (allocate、deallocate、list_devices、cdrw など)
スクリプトまたはプログラムでの承認の確認のガイダンスについては、使用例 36を参照してください。承認が必要なプログラムを作成するには、Oracle Solaris 11 セキュリティーサービス開発ガイド の 承認についてを参照してください。