ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 10 から Oracle Solaris 11 への移行 Oracle Solaris 11 Information Library (日本語) |
1. Oracle Solaris 10 から Oracle Solaris 11 への移行 (概要)
2. Oracle Solaris 11 インストール方法への移行
10. 仮想環境での Oracle Solaris リリースの管理
次の情報は、役割、権限、および特権が Oracle Solaris 11 でどのように機能するかを説明したものです。
承認の割り当てと委任の違い – Oracle Solaris では、特定の管理権限を個々のユーザーや役割に委任して責務を分離するために承認が使われています。Oracle Solaris 10 では、承認を別のユーザーに委任するためには、.grant で終わる承認が必要です。Oracle Solaris 11 では、2 つの新しい接尾辞 .assign と .delegate (たとえば solaris.profile.assign や solaris.profile.delegate) が使用されます。前者は、任意の権利プロファイルを任意のユーザーまたは役割に委任する権限を付与します。後者は、制限が厳しくなり、現在のユーザーにすでに割り当てられている権利プロファイルのみを委任できます。root 役割には solaris.* が割り当てられているため、この役割では任意の承認を任意のユーザーまたは役割に割り当てることができます。安全対策として、.assign で終わる承認はデフォルトではどのプロファイルにも含まれていません。
Media Restore 権利プロファイル – この権利プロファイルと承認セットは、root 以外のアカウントの特権をエスカレートできます。このプロファイルは存在しますが、ほかの権利プロファイルの一部ではありません。Media Restore 権利プロファイルはルートファイルシステム全体へのアクセスを提供するため、これを使用することで特権のエスカレーションが可能です。故意に改ざんされたファイルや交換したメディアを復元できます。デフォルトでは、root 役割にはこの権利プロファイルが含まれています。
Primary Administrator プロファイルの削除 – インストール時に作成される最初のユーザーには、次の役割と権限が与えられます。
root 役割
System Administrator 権利プロファイル
root として実行されるすべてのコマンドを対象にした sudo コマンドへのアクセス
役割の認証 – user または role のどちらかを roleauth キーワードとして指定できます。user_attr(4) を参照してください。
root を役割にする – root がデフォルトで役割になったため、匿名 でシステムにリモートログインすることはできません。root 役割をユーザーに変更する方法については、『Oracle Solaris の管理: セキュリティーサービス』の「root 役割をユーザーに変更する方法」を参照してください。
Oracle Solaris 11 の基本特権には次が含まれます。
file_read
file_write
net_access
通常のシェルのプロファイルシェルバージョン – 通常のシェルにはそれぞれのプロファイルバージョンがあります。次のプロファイルシェルを使用できます。
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 つのバージョンのファイルにマージされませんが、フラグメントとして残されます。この変更により、パッケージで完全な RBAC プロファイルも部分的な RBAC プロファイルも提供できるようになります。useradd および profiles コマンドでローカルファイルリポジトリに追加されたエントリは、フラグメントディレクトリ内の local-entries ファイルに追加されます。プロファイルを追加または変更するには、profiles コマンドを使用します。『Oracle Solaris の管理: セキュリティーサービス』の「権利プロファイルを作成または変更する方法」を参照してください。
Stop 権利プロファイル – このプロファイルを使用すると、管理者は制限付きアカウントを作成できます。『Oracle Solaris の管理: セキュリティーサービス』の「RBAC の権利プロファイル」を参照してください。
pfsh script コマンド – このコマンドの実行は pfsh -c script コマンドと同じになりました。以前は、スクリプト内のコマンドは、そのスクリプトの最初の行にプロファイルシェルが指定されないかぎり、RBAC を使用できませんでした。この規則では、RBAC を使用するためにはスクリプトを変更する必要がありました。現在は、スクリプトの呼び出し側 (またはセッション内の祖先) でプロファイルシェルを指定できるため、これが不要になりました。
pfexec コマンド – このコマンドは setuid root ではなくなりました。pfexec コマンドまたはプロファイルシェルが実行されるときに、新しい PF_PFEXEC プロセス属性が設定されます。その後、カーネルによって exec に対する適切な特権が設定されます。この実装により、適宜、サブシェルに権限が与えられたり、制限されたりするようになります。
カーネルが exec(2) を処理している場合は、root に対する setuid の扱いが異なります。ほかの uid に対する setuid や setgid は以前のとおりです。カーネルでは、exec_attr(4) の Forced Privilege RBAC プロファイルでエントリを検索して、プログラムの実行に使用される特権を判断するようになりました。プログラムは、uid root とすべての特権で開始されるのではなく、現在の uid と、Forced Privilege RBAC 実行プロファイルでそのパス名に割り当てられている追加の特権のみで実行されます。
ユーザーに特権が直接割り当てられるとき、実際にはその特権はすべてのシェルにあります。ユーザーに特権が直接割り当てられないとき、ユーザーはプロファイルシェルを開く必要があります。たとえば、特権が割り当てられているコマンドがユーザーの権利プロファイルのリスト内の権利プロファイルに含まれるとき、ユーザーはプロファイルシェルでコマンドを実行する必要があります。
特権をオンラインで表示する場合は、privileges(5) を参照してください。表示される特権の形式は、開発者によって使用されます。
$ man privileges Standards, Environments, and Macros privileges(5) NAME privileges - process privilege model ... The defined privileges are: PRIV_CONTRACT_EVENT Allow a process to request reliable delivery of events to an event endpoint. Allow a process to include events in the critical event set term of a template which could be generated in volume by the user. ...
例 9-1 直接割り当てられた特権を表示する
直接特権が割り当てられた場合、基本セットにはデフォルトの基本セットより多くの特権が含まれます。次の例では、ユーザーは常時 proc_clock_highres 特権にアクセスできます。
$ /usr/bin/whoami jdoe $ ppriv -v $$ 1800: pfksh flags = <none> E: file_link_any,…,proc_clock_highres,proc_session I: file_link_any,…,proc_clock_highres,proc_session P: file_link_any,…,proc_clock_highres,proc_session L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time $ ppriv -vl proc_clock_highres Allows a process to use high resolution timers.