Go to main content
Oracle® Solaris 10 から Oracle Solaris 11.3 への移行

印刷ビューの終了

更新: 2015 年 10 月
 
 

役割、権限、特権、および認証

    次の情報では、役割、権限、特権、および承認が Oracle Solaris 11 でどのように機能するかを説明します。

  • 承認の割り当てと委任の違い – Oracle Solaris では、特定の管理権限を個々のユーザーや役割に委任して責務を分離するために承認が使われています。Oracle Solaris 10 では、承認を別のユーザーに委任するためには、.grant で終わる承認が必要です。Oracle Solaris 11 以降は、2 つの新しい接尾辞 .assign.delegate (たとえば solaris.profile.assignsolaris.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)を参照してください。

  • 役割としての rootroot は、Oracle Solaris 11 ではデフォルトで役割となるため、匿名ではなく、システムにリモートでログインできません。root 役割をユーザーに変更する方法については、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 のroot 役割をユーザーに変更する方法を参照してください。

  • Oracle Solaris の基本特権には次が含まれます。

    • file_read

    • file_write

    • net_access

  • 通常のシェルのプロファイルシェルバージョン – Oracle Solaris 11 では、通常のシェルにはそれぞれ独自のプロファイルバージョンがあります。次のプロファイルシェルを使用できます。

    • pfbash

    • pfcsh

    • pfksh

    • pfksh93

    • pfrksh93

    • pfsh

    • pftcsh

    • pfzsh

    pfexec(1) を参照してください。

  • 権利プロファイルuser_attrprof_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.3 でのユーザーとプロセスのセキュリティー保護 の権利プロファイルの詳細を参照してください。

  • pfsh script コマンド – このコマンドの実行は pfsh –c script コマンドと同じです。以前は、スクリプト内のコマンドは、そのスクリプトの最初の行にプロファイルシェルが指定されないかぎり、権利プロファイルを使用できませんでした。この規則では、権利プロファイルを使用するためにはスクリプトを変更する必要がありましたが、現在は、スクリプトの呼び出し側 (またはセッション内の祖先) でプロファイルシェルを指定できるため、これが不要になりました。

  • pfexec command – このコマンドは setuid root ではなくなりました。pfexec コマンドまたはプロファイルシェルが実行されるときに、新しい PF_PFEXEC プロセス属性が設定されます。その後、カーネルによって exec に対する適切な特権が設定されます。この実装により、適宜、サブシェルに権限が与えられたり、制限されたりするようになります。さらに、pfexec コマンドは指定したコマンドが auth_profiles キーワードを使用して割り当てられた権利プロファイルに含まれている場合、ユーザーに再認証するように要求します。

    カーネルが exec (2) を処理している場合は、root に対する setuid の扱いが異なります。ほかの uidsetgid に対する setuid は以前のとおりです。カーネルは、 exec_attr (4) の Forced Privilege 権利プロファイルでエントリを検索して、プログラムの実行に使用される特権を判断します。プログラムは、uid root とすべての特権で開始されるのではなく、現在の uid と、Forced Privilege 実行権利プロファイルでそのパス名に割り当てられている追加の特権のみで実行されます。

権利プロファイルについて

権利プロファイルとは、承認などのセキュリティー属性、セキュリティー属性を持つコマンド、および補助権利プロファイルを集めたものです。Oracle Solaris では権利プロファイルが多数提供されています。既存の権利プロファイルを修正し、新しい権利プロファイルを作成できます。権利プロファイルは、もっとも権限のあるものからもっとも権限のないものへと順番に割り当てられる必要があることに注意してください。

    以下に、使用できる権利プロファイルをいくつか示します。

  • System Administrator – セキュリティーに関係しないほとんどのタスクを実行できるプロファイルです。このプロファイルには、権限のある役割を作成するためにいくつかのほかのプロファイルが含まれます。このプロファイルに関する情報を表示するには、profiles コマンドを使用します。使用例 1 を参照してください。

  • Operator – ファイルやオフラインメディアを管理するための限られた機能を持つプロファイルです。

  • Printer Management – 印刷を処理するための限られた数のコマンドと承認を提供するプロファイルです。

  • Basic Solaris User – ユーザーがセキュリティーポリシーの境界内でシステムを使用できるようにするプロファイルです。このプロファイルは、デフォルトで policy.conf ファイル内にリストされます。

  • Console User – ワークステーション所有者用のプロファイルです。このプロファイルは、コンピュータを使用している人に対して承認、コマンド、アクションへのアクセスを提供します。

このリリースで使用できる他の権利プロファイルには、All 権利プロファイルや Stop 権利プロファイルなどがあります。Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の第 8 章Oracle Solaris 権利リファレンスを参照してください。

使用例 1  System Administrator 権利プロファイルに関する情報の表示

特定の権利プロファイルに関する情報を表示するには、profiles コマンドを使用します。次の例では、System Administrator 権利プロファイルに関する情報が表示されます。

$ profiles -p "System Administrator" info
name=System Administrator
desc=Can perform most non-security administrative tasks
profiles=Install Service Management,Audit Review,Extended Accounting Flow
Management,Extended Accounting Net Management,Extended Accounting Process Management,
Extended Accounting Task Management,Printer Management,Cron Management,Device Management,
File System Management,Log Management,Mail Management,Maintenance and Repair,
Media Backup,Media Catalog,Media Restore,Name Service Management,Network Management
Object Access Management,Process Management,Project Management,RAD Management,
Service Operator,Shadow Migration Monitor,Software Installation,System
Configuration,User Management,ZFS Storage Management
help=RtSysAdmin.html

特権と承認の表示

ユーザーに特権が直接割り当てられるとき、実際にはその特権はすべてのシェルにあります。ユーザーに特権が直接割り当てられないとき、ユーザーはプロファイルシェルを開く必要があります。たとえば、特権が割り当てられているコマンドがユーザーの権利プロファイルのリスト内の権利プロファイルに含まれるとき、ユーザーはプロファイルシェルでコマンドを実行する必要があります。

特権をオンラインで表示する場合は、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.
...
使用例 2  直接割り当てられた特権を表示する

直接特権が割り当てられた場合、基本セットにはデフォルトの基本セットより多くの特権が含まれます。次の例では、ユーザーは常時 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.

承認を表示するには、auths コマンドを使用します。

$ auths list

このコマンドの出力では、ユーザーに割り当てられている承認のサマリーが読みやすい形式 (1 行につき 1 つ) で表示されます。Oracle Solaris 11.1 以降、auths コマンドに複数の新しいオプションが追加されました。たとえば、check オプションはスクリプト作成に役立ちます。他の新しいオプションは、files または LDAP との間で承認を追加、変更、および削除する機能を提供します。auths(1) を参照してください。