マニュアルページセク ション 1: ユーザーコマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

profiles(1)

名前

profiles - 権利プロファイルの一覧表示および管理

形式

profiles [-l] [-a | [-x] 
user ...] [-S repository]
profiles -p profiles
 [-S repository]
profiles -p profiles
 [-S repository] 
subcommand
profiles -p profiles
 [-S repository] 
-f command_file
profiles help

説明

profiles ユーティリティーは、ローカルファイルのネームサービスまたは LDAP ネームサービスの prof_attr(4) または exec_attr(4) データベース内の権利プロファイルの構成を作成および変更します。権利プロファイルの構成は、プロファイル名といくつかのプロパティーで作成されています。

次の形式の profiles サブコマンドは、対話形式で使用されます。


profiles –p profile [–S 
repository] [subcommand]

profiles コマンドは、自分または任意指定のユーザーあるいは役割名に割り当てられている権利プロファイルの名前を標準出力に書き込みます。プロファイルは、特定の機能の実行に必要なコマンドおよび承認を列挙するために使用されるバンドリングメカニズムです。リストには各実行可能ファイルとともに、実効ユーザー ID や実効グループ ID などのプロセス属性が表示されます。特権コマンドインタプリタによって起動されるときにこれらの属性を指定してプロセスが実行されます。pfexec(1) のマニュアルページを参照してください。プロファイルには、prof_attr(4) で定義されているほかのプロファイルを含めることができます。

複数のプロファイルを結合して適切なアクセス制御を作成することができます。プロファイルが割り当てられると、既存のセットに承認が追加されます。複数のプロファイルに同じコマンドが存在する場合、プロファイルの順序付けによって決定された、最初のプロファイルがプロセス属性の設定に使用されます。すべてのコマンドに一致するようにワイルドカードを指定できます。

特殊なプロファイル「Stop」を使用すると、以降のプロファイルの評価がショートカットされます。「Stop」プロファイル以降にあるプロファイルは、評価されることも、ほかのコマンドを見つけるために使用されることもありません。このプロファイルを使用すると、/etc/security/policy.conf 内で PROF_GRANTED キーで一覧表示されているプロファイルと、そのファイル内で AUTH_GRANTED で一覧表示されている承認を対象外にすることができます。

プロファイルが解釈されると、プロファイルリストが user_attr(4) から読み込まれます。ユーザーごとに、認証されたセットと認証されていないセットという、プロファイルの 2 つのセットがあります。ユーザーは、認証されたプロファイルのセット内のエントリに一致するコマンドを実行する前に再認証する必要があります。pfexec(1) を参照してください。いずれかのデフォルトプロファイルが /etc/security/policy.conf (policy.conf(4) を参照) で定義されている場合は、user_attr(4) からロードされたリストにデフォルトプロファイルのリストが追加されます。prof_attr(4) 内の一致するエントリは承認のリストを提供し、exec_attr(4) 内の一致するエントリはコマンドのリストを提供します。

プロパティー

–p オプションを指定して呼び出すと、指定されたプロファイルのプロパティーおよび関連付けられている実行可能ファイルのプロパティーを管理できます。ただし、システムの整合性を維持するため、Solaris によって管理されるプロファイルは、このコマンドを使用しても変更できません。そのようなプロファイルは、システムの更新中に pkg(1) コマンドを使用した場合にのみ変更できます。

また、その他のプロファイルも、pkg(1) コマンドを使用すると、変更できないプロファイルとして必要に応じて配布できます。

特権のエスカレーションを防ぐため、プロパティー値はユーザーの承認に基づいて制限されます。管理者には、少なくとも Rights Management プロファイルが付与されている必要があります。また、委任承認によって管理されているセキュリティー関連のプロパティーを変更するには、管理者に Rights Delegation プロファイルが付与されている必要があります。詳細は、exec_attr(4)prof_attr(4)、および次のサマリーを参照してください。

プロパティー値には、単純な文字列、またはコンマで区切られた単純な文字列のリストを指定できます。スペース文字を含む単純な文字列は、二重引用符で囲む必要があります。

profiles コマンドは、profilecommand の両方のコンテキストで動作します。profile コンテキストは、初期状態であり、各種のプロファイルプロパティーを管理できます。次の表は、profile コンテキストのプロパティーをまとめたものです。


Property Name   Value Type         Required Authorizations

name            simple             none
auths           list of simple     solaris.auth.{assign/delegate}
profiles        list of simple     solaris.profile.{assign/delegate}
privs           list of simple     solaris.privilege.{assign/delegate}
limitpriv       list of simple     solaris.privilege.{assign/delegate}
defaultpriv     list of simple     solaris.privilege.{assign/delegate}
always_audit    list of simple     solaris.audit.assign
never_audit     list of simple     solaris.audit.assign
access_times    list of simple     solaris.account.setpolicy
desc            simple             none
help            simple             none
pam_policy      simple             solaris.account.setpolicy
cmd             simple/new context none

コマンドのコンテキストは、cmd プロパティーを指定することによって入力します。command コンテキストでは、現在のコマンドのプロパティーを管理できます。

次の表は、command コンテキストのプロパティーをまとめたものです。


Property Name   Value Type         Required Authorizations

id              simple             none
privs           list of simple     solaris.privilege.{assign/delegate}
limitprivs      list of simple     solaris.privilege.{assign/delegate}
euid            simple             solaris.profile.cmd.setuid
uid             simple             solaris.profile.cmd.setuid
egid            simple             solaris.group.{assign/delegate}
gid             simple             solaris.group.{assign/deleg

profile コンテキストのプロパティーに指定可能な値を、次のリストに示します。次のリストで指定されているように、プロパティーとその値の間には等号 (=) が必要です。

always_audit

常に監査するイベントクラスを指定する監査フラグ。ユーザーの user_attr(4) エントリ、または割り当てられているプロファイルの順序付けされたリストにある、このプロパティーの最初に出現しているもののみが、ログインおよび su で適用されます。

auths

新しいプロファイルに追加される、コンマで区切られた 1 つ以上の承認。ワイルドカード文字 (*) を承認名に使用する場合は、名前を二重引用符 (") で囲む必要があります。

cmd

実行可能ファイルへの完全指定パス、またはすべてのコマンドを指定するために使用されるアスタリスク (*) 記号。パス名のファイル名コンポーネントを置き換えるアスタリスクは、特定のディレクトリのすべてのファイルを示します。

これは、command コンテキストを入力して、コマンドのセキュリティープロパティーを管理するために使用される特殊なプロパティーです。

これらの ID には、数値 ID または名前を使用できます。

id

このプロパティーには、前の cmd プロパティーによって指定された値が設定されますが、この値は変更できます。select サブコマンドと組み合わせて使用すると、その後の編集のために既存のコマンドのプロパティーのクローンを作成できます。

pam_policy

ユーザーに適用する PAM ポリシー。pam_policy は、pam.conf(4) 形式のファイルの絶対パス名、または /etc/security/pam_policy 内の pam.conf(4) 形式のファイルの名前にする必要があります。詳細については、pam_user_policy(5) を参照してください。

access_times

対応するアプリケーションとサービスのセットにアクセスできる日付と時間を指定する、1 つ以上のコンマ区切りのルール。特定のサービス名についての時間を確認するとき、評価はユーザーの user_attr(4) データベース内の access_times で指定されたルールを使用して開始され、一致するサービス名またはワイルドカードエントリが見つかるまで、ユーザーのプロファイルおよびサブプロファイル内の access_times に従います。一致が見つからない場合、ユーザーは、そのサービスの時間制限から除外されます。詳細は、user_attr(4) を参照してください。

privs

実行可能プロセスの継承可能セットに適用する一連の特権。デフォルトは basic です。

limitprivs

実行可能プロセスの制限セットに適用する一連の特権。デフォルトは all です。

euid

コマンドで実行するプロセスの実効ユーザー ID。

uid

コマンドで実行するプロセスの実ユーザー ID。

egid

コマンドで実行するプロセスの実効グループ ID。

gid

コマンドで実行するプロセスの実グループ ID。

defaultpriv

ユーザーの一連のプロセスに割り当てられるデフォルトの一連の特権。ユーザーの user_attr(4) エントリ、または割り当てられているプロファイルの順序付けされたリストにある、このプロパティーの最初に出現しているもののみが、ログインおよび su で適用されます。

desc

新しいプロファイルの説明。テキストは引用符で囲む必要があります。

help

新しいプロファイルのヘルプファイル名。ヘルプファイルは、/usr/lib/help/profiles/locale/<locale> ディレクトリにコピーされます。ここで、<locale> は、ユーザーの言語ロケールの値です。何も指定されていない場合は C になります。このプロパティーの指定は、files リポジトリでのみ使用できます。

limitpriv

ユーザーが su(1M) またはその他の方法で開始したユーザーまたは任意のプロセスが取得できる特権セットの最大数。ユーザーの user_attr(4) エントリ、または割り当てられているプロファイルの順序付けされたリストにある、最初に出現したプロパティーのみが、ログインおよび su に適用されます。

name

プロファイルの名前。名前の初期値は、コマンド行で –p オプションを使用して指定します。名前を変更すると、現在のプロファイルのプロパティーが、新しい名前が付けられたプロファイルに適用されます。このようにして、その後の編集のために既存のプロファイルのクローンを作成できます。名前には、既存のプロファイルと同じ名前は使用できません。

never_audit

監査しないイベントクラスを指定する監査フラグ。ユーザーの user_attr(4) エントリ、または割り当てられているプロファイルの順序付けされたリストにある、このプロパティーの最初に出現しているもののみが、ログインおよび su で適用されます。

privs

pfexec(1) コマンドの P オプションを使用して指定できる特権セット。

profiles

新しいプロファイルに追加される、コンマで区切られた 1 つ以上の補助プロファイル。

オプション

サポートしているオプションは、次のとおりです。

–a

指定されたリポジトリのすべてのプロファイル名を一覧表示します。リポジトリが指定されていない場合は、nsswitch.conf(4) 内の prof_attr に対して構成されているすべての内容に従います。

–x

ユーザーの認証されたプロファイルのセット内のプロファイル名のみを一覧表示します。デフォルトでは、ユーザーの認証されていないプロファイル内のプロファイルのみが一覧表示されます。

–f command_file

profiles のコマンドファイルの名前を指定します。command_file は、profiles サブコマンドが 1 行に 1 つあるテキストファイルです。

–l

権利プロファイルに関する情報を表示し、コマンドと、ユーザーやグループ ID などそのコマンドの特殊なプロセス属性を一覧表示します。

–p profile

プロファイル名を指定します。

–S repository

有効なリポジトリは、filesldap です。repository は、更新するネームサービスを指定します。デフォルトの repository は files です。

サブコマンド

–p オプションを指定して呼び出すと、サブコマンドをコマンド行または対話形式で指定できます。セミコロンで区切られた複数のサブコマンドをコマンド行に指定するには、一連のサブコマンド全体を引用符で囲みます。サブコマンドが指定されていない場合は、対話型セッションが行われることを意味します。対話型セッションでは、TAB キーを使用することにより、サブコマンドの自動補完を呼び出すことができます。

add サブコマンドと select サブコマンドを使用すると、特定のコマンドを選択できます。選択した時点で、コンテキストがそのコマンドのコンテキストに変更されます。対話型セッションでは、command コンテキストは、プロンプト文字列のコマンドのベース名によって識別されます。end サブコマンドと cancel サブコマンドを使用すると、コマンドの指定を終了できます。指定を終了した時点で、コンテキストは profile コンテキストに戻ります。

破壊的な動作や作業内容の消失を伴う可能性のあるサブコマンドには、強制的にその処理を実行するために –F オプションが用意されています。端末デバイスから入力を行う場合、ユーザーは適切なタイミングで入力を要求されます。これは、サブコマンドが –F オプションなしで指定された場合に発生することがあります。それ以外の場合、処理は許可されず、診断メッセージが標準エラー出力に書き込まれます。

プロパティー値には、単純値、またはリストを受け入れるプロパティーの場合は、単純値のリストを指定できます。サポートされているサブコマンドは次のとおりです。

add cmd=pathname

profile コンテキストで、対象となるコマンドの指定を開始します。コンテキストは、command タイプに変更されます。

add property-name=property-value

指定した値を現在のプロパティー値に追加します。このサブコマンドを適用できるのは、リストを受け入れるプロパティーのみです。

cancel

コマンドの指定を終了し、コンテキストを profile にリセットします。指定途中のリソースをすべて破棄します。cancel を適用できるのは、command コンテキストのみです。

clear property-name

プロパティーの値を消去します。

commit

現在の構成をメモリーから安定した記憶領域に確定します。変更を適用するには、構成を確定する必要があります。メモリー内構成が確定されるまでは、revert サブコマンドを使用すると変更内容を削除できます。profiles セッションが終了するときには、commit 処理が自動的に試みられます。構成が正しく設定されていないと確定できないので、この処理では自動的に構成が確認されます。

delete [–F]

指定されたプロファイルをメモリー内および安定した記憶領域から削除します。この操作は、対象のプロファイルが同じリポジトリの別のプロファイルにサブプロファイルとして含まれている場合は許可されません。代わりに、このプロファイルを含むプロファイルのリストが提供されます。それらのプロファイルからこのプロファイルを手動で削除してから、対象のプロファイルを削除する必要があります。この操作を強制的に実行する場合は、–F オプションを使用します。削除が許可される場合、処理はすぐに実行され、セッションは終了します。

end

コマンドの指定を終了します。このサブコマンドを適用できるのは、command コンテキストのみです。profiles コマンドは、現在のコマンドが完全に指定されていることを検査します。完全に指定されている場合は、メモリー内構成に追加され (メモリー内構成を安定した記憶領域に保存する方法については commit を参照)、コンテキストは profile コンテキストに戻ります。指定が完全でない場合は、対応するエラーメッセージが通知されます。

exit [–F]

profiles のセッションを終了します。必要な場合は、commit 操作が自動的に試行されます。EOF 文字を使用して profiles を終了することもできます。この操作を強制的に実行する場合は、–F オプションを使用します。

export [–f output-fle ]

標準出力に構成を出力します。output-file に構成を出力する場合は、–f オプションを使用します。このオプションを使用すると、コマンドファイルオプションに適した形式で出力が作成されます。

help [usage] [subcommands] [properties] [<subcommand.] [<properties>]

一般ヘルプまたは特定項目のヘルプを出力します。

info [property-name]

現在のプロファイルまたは指定されたプロパティーに関する情報を表示します。

remove cmd= fullpath

指定されたコマンドをプロファイルから削除します。このサブコマンドは、profile コンテキストでのみ有効です。

remove [–F] cmd

プロファイルからすべてのコマンドを削除します。–F オプションを使用していない場合は、確認が求められます。このサブコマンドは、profile コンテキストでのみ有効です。

remove property-name=property-value

指定した値をプロパティーから削除します。これを適用できるのは、リストを受け入れるプロパティーのみです。

revert [–F]

構成を、最後に確定されたときの状態に戻します。この操作を強制的に実行する場合は、–F オプションを使用します。

select cmd=fullpath

変更を行うために、指定したパス名の条件に一致するコマンドを選択します。このサブコマンドを適用できるのは、profile コンテキストのみです。

set property-name=property-value

指定されたプロパティー名を、指定された値に設定します。profile コンテキストでのみ有効なプロパティー (たとえば、namedesc) と、command コンテキストでのみ有効なプロパティーがあります。このサブコマンドは、profile コンテキストと command コンテキストの両方で適用できます。

verify

現在の構成が正しいかどうかを確認します。

  • 必須のプロパティーが指定されている。

  • 各キーワードの値が有効である。

  • ユーザーは値を指定することを承認されている。

使用例 1 profiles コマンドを使用する

profiles コマンドの出力は次の形式です。


example% profiles tester01 tester02
tester01 : Audit Management, All Commands
tester02 : Device Management, All Commands
example%
使用例 2 list オプションの使用

example% profiles -l tester01 tester02
tester01 :
    Audit Management:
      /usr/sbin/audit          euid=root
      /usr/sbin/auditconfig    euid=root    egid=sys
    All Commands:
      *
tester02 :
    Device Management:
      /usr/bin/allocate:       euid=root
      /usr/bin/deallocate:     euid=root
    All Commands
      *
example%
使用例 3 新しいプロファイルの作成

次のコマンドは、新しい User Manager プロファイルを LDAP に作成します。新しいプロファイルの説明は「Manage users and groups」で、割り当てられる承認は solaris.user.manage です。割り当てられる補助プロファイルは Mail Management です。ヘルプファイル名は、RtUserMgmt.html です。


example% profiles -p "User Manager" -S ldap
profiles:User Manager> set desc="Manage users and groups"
profiles:User Manager> set help=RtUserMgmt.html
profiles:User Manager> set auths=solaris.user.manage
profiles:User Manager> set profiles="Mail Management"
profiles:User Manager> exit


使用例 4 現在の構成に関する情報の表示

次のコマンドは、User Manager プロファイルに関する情報を表示します。


example% profiles -p "User Manager" -S ldap info
name=User Manager
desc=Manage users and  groups
auths=solaris.user.manage
profiles=Mail Management
help=RtUserMgmt.html

使用例 5 プロファイルの削除

次のコマンドは、LDAP から User Manager プロファイルを削除します。


example% profiles -p "User Manager" -S ldap delete -F

使用例 6 プロファイルの変更

次のコマンドは、LDAP の User Manager プロファイルを変更します。新しいプロファイルの説明は「Manage world」、新しい承認の割り当ては solaris.user.* 承認、および新しい補助プロファイルの割り当ては All です。


example% profiles -p "User Manager" -S ldap
profiles:User Manager> set desc="Manage world"
profiles:User Manager> set auths="solaris.user.*"
profiles:User Manager> set profiles=All
profiles:User Manager> exit

使用例 7 exec_attr データベースエントリの作成

次のコマンドは、LDAP の User Manager プロファイルに新しい exec_attr のエントリを作成します。/usr/bin/cp というエントリが追加されます。コマンドには、実効ユーザー ID に 0、および実効グループ ID に 0 が指定されています。


example% profiles -p "User Manager" -S ldap
profiles:User Manager> add cmd=/usr/bin/cp
profiles:User Manager:cp> set euid=0
profiles:User Manager:cp> set egid=0
profiles:User Manager:cp> end
profiles:User Manager> exit
example%

使用例 8 exec_attr データベースエントリの削除

次の例では、LDAP から User Manager プロファイルの exec_attr データベースエントリを削除します。コマンド /usr/bin/cp に指定されているエントリが削除されます。


example% profiles -p "User Manager" -S ldap
profiles:User Manager> remove cmd=/usr/bin/cp
profiles:User Manager> exit
example%

使用例 9 exec_attr データベースエントリの変更

次を使用して、LDAP の User Manager プロファイルの exec_attr データベースエントリの属性を変更します。/usr/bin/cp エントリは、実ユーザー ID が 0、および実グループ ID が 0 で実行するように変更されます。


example% profiles -p "User Manager" -S ldap
profiles:User Manager> select cmd=/usr/bin/cp
profiles:User Manager:cp> clear euid
profiles:User Manager:cp> clear egid
profiles:User Manager:cp> set uid=0
profiles:User Manager:cp> set gid=0
profiles:User Manager:cp> end
profiles:User Manager> exit
example%

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

エラーが発生した。

ファイル

/etc/security/exec_attr

/etc/security/prof_attr

/etc/user_attr

/etc/security/policy.conf

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os

関連項目

auths(1), pfexec(1), pkg (1), roles(1), getprofattr(3C), auth_attr(4), exec_attr(4), nsswitch.conf(4), pam.conf(4), policy.conf(4), prof_attr(4), user_attr(4), audit_flags(5), attributes(5), pam_user_policy(5), privileges(5)