次の情報では、役割、権限、特権、および承認が Oracle Solaris 11 でどのように機能するかを説明します。
承認の割り当てと委任の違い – Oracle Solaris では、特定の管理権限を個々のユーザーや役割に委任して責務を分離するために承認が使われています。Oracle Solaris 10 では、承認を別のユーザーに委任するためには、.grant で終わる承認が必要です。Oracle Solaris 11 以降は、2 つの新しい接尾辞 .assign と .delegate (たとえば solaris.profile.assign や solaris.profile.delegate) が使用されます。前者は、任意の権利プロファイルを任意のユーザーまたは役割に委任する権限を付与します。後者は、制限が厳しくなり、現在のユーザーにすでに割り当てられている権利プロファイルのみを委任できます。root 役割には solaris.* が割り当てられているため、この役割では任意の承認を任意のユーザーまたは役割に割り当てることができます。安全対策として、.assign で終わる承認はデフォルトではどのプロファイルにも含まれていません。
groupadd コマンドの変更点 – グループの作成時に、システムにより solaris.group.assign/groupname 承認が管理者に割り当てられます。この承認は、そのグループに対する完全な制御を管理者に与えて、管理者が必要に応じて groupname を変更または削除できるようにします。groupadd(1M) および groupmod(1M) のマニュアルページを参照してください。
Media Restore 権利プロファイル – この権利プロファイルと承認セットは、root 以外のアカウントの特権をエスカレートできます。このプロファイルは存在しますが、ほかの権利プロファイルの一部ではありません。Media Restore 権利プロファイルはルートファイルシステム全体へのアクセスを提供するため、これを使用することで特権のエスカレーションが可能です。故意に改ざんされたファイルや交換したメディアを復元できます。デフォルトでは、root 役割にはこの権利プロファイルが含まれています。
Primary Administrator プロファイルの削除 – インストール時に作成される最初のユーザーには、次の役割と権限が与えられます。
root 役割
System Administrator 権利プロファイル
root として実行されるすべてのコマンドを対象にした sudo コマンドへのアクセス
役割の認証 – user または role のどちらかを roleauth キーワードとして指定できます。
root 役割にどのパスワードが割り当てられているかを次のように判断できます。
# userattr roleauth root
出力がない場合は、root アカウントがカスタマイズされておらず、パスワードが Oracle Solaris のデフォルトであり、ユーザーのパスワードではないことを意味します。
user_attr(4)を参照してください。
root を役割にする – root は、Oracle Solaris 11 ではデフォルトで役割となるため匿名ではなく、システムにリモートログインできません。root 役割をユーザーに変更する方法については、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 のroot 役割をユーザーに変更する方法を参照してください。
Oracle Solaris の基本特権には次が含まれます。
file_read
file_write
net_access
通常のシェルのプロファイルシェルバージョン – Oracle Solaris 11 では、通常のシェルにはそれぞれ独自のプロファイルバージョンがあります。次のプロファイルシェルを使用できます。
pfbash
pfcsh
pfksh
pfksh93
pfrksh93
pfsh
pftcsh
pfzsh
pfexec(1) を参照してください。
権利プロファイル – user_attr、prof_attr、および exec_attr データベースは読み取り専用です。これらのローカルファイルデータベースは、/etc/user_attr.d、/etc/security/prof_attr.d、および /etc/security/exec_attr.d にあるフラグメントから組み立てられます。それらのフラグメントファイルは、1 つのバージョンのファイルにマージされませんが、フラグメントとして残されます。この変更により、パッケージで完全な権利プロファイルも部分的な権利プロファイルも提供できるようになります。useradd および profiles コマンドでローカルファイルリポジトリに追加されたエントリは、フラグメントディレクトリ内の local-entries ファイルに追加されます。プロファイルを追加または変更するには、profiles コマンドを使用します。権利プロファイルについてを参照してください。
Stop 権利プロファイル – このプロファイルを使用すると、管理者は制限付きアカウントを作成できます。Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の権利プロファイルの詳細を参照してください。
pfsh script コマンド – このコマンドの実行は pfsh –c script コマンドと同じです。以前は、スクリプト内のコマンドは、そのスクリプトの最初の行にプロファイルシェルが指定されないかぎり、権利プロファイルを使用できませんでした。この規則では、権利プロファイルを使用するためにはスクリプトを変更する必要がありましたが、現在は、スクリプトの呼び出し側 (またはセッション内の祖先) でプロファイルシェルを指定できるため、これが不要になりました。
pfexec コマンド – このコマンドは setuid root ではなくなりました。pfexec コマンドまたはプロファイルシェルが実行されるときに、新しい PF_PFEXEC プロセス属性が設定されます。その後、カーネルによって exec に対する適切な特権が設定されます。この実装により、適宜、サブシェルに権限が与えられたり、制限されたりするようになります。
カーネルが exec(2) を処理している場合は、root に対する setuid の扱いが異なります。ほかの uid に対する setuid や setgid は以前のとおりです。カーネルは、 exec_attr (4) の Forced Privilege 権利プロファイルでエントリを検索して、プログラムの実行に使用される特権を判断します。プログラムは、uid root とすべての特権で開始されるのではなく、現在の uid と、Forced Privilege 実行権利プロファイルでそのパス名に割り当てられている追加の特権のみで実行されます。