projctl コマンド
目的
プロジェクト・ベースの拡張アカウンティング・アクティビティーをサポートします。
構文
projctl add projname projnumber [comment] [ { -d projpath | -p [DN] } ]
projctl merge sourceprojpath [ -d targetprojfile ]
projctl rm projname [ { -d projpath | -p [DN] } ]
projctl chg projname [ -p pid [, pid] ] [-f]
projctl exec projname <cmd line> [-f]
projctl chattr agg projname {-s|-u} [ { -d projpath | -p [DN] } ]
projctl qpolicy [ -g [ DN] ]
projctl qproj [projectname]
projctl qapp appname
projctl { chkusr | chkgrp | chkprojs | {{chkadm | chkall} [-d admpath]}}
projctl ldprojs -g [ -r ] [ -a ]
projctl ldprojs -g [DN] -d projpath
projctl ldprojs -p [DN] -d projpath
projctl unldprojs -g [DN] [ -f ] [ -a ]
projctl ldadm -g [name] [ -r ] [ -a ]
projctl ldadm -g [name:]DN | name ] -d admpath
projctl ldadm -p [ [name:]DN | name ] -d admpath
projctl unldadm -p [ [name:]DN | name ]
説明
projctl コマンドのさまざまなサブコマンドは、 新規プロジェクトの追加、新規プロジェクトの除去、および特定のアカウンティング・ポリシー のロードなどの、プロジェクト・ベースの拡張アカウンティング・アクティビティーを実行します。 projctl コマンドのこれらのさまざまなオプションについて、以下に説明します。
フラグ
項目 | 説明 |
---|---|
-a | システム・リブート時に自動的にポリシーをロードします。 |
-d | 通常は、参照するプロジェクト定義ファイルまたは管理ポリシー・ファイルがある場所からのパスを指定します。 merge サブコマンドの中で使用される場合は、このフラグは、マージされた プロジェクト定義が保管されるターゲット・プロジェクト定義ファイルを指定するためのものです。 |
-f | chg および exec サブコマンドと一緒に指定されると、ポリシー・ルールをオーバーライドします。unldall サブコマンドと一緒に呼び出されると、プロセスに割り当てられたプロジェクトをクリアします。unldprojs サブコマンドと一緒に呼び出されると、すべてのプロジェクト定義のアンロードを強制します。 |
-g | プロジェクトおよびポリシーが LDAP リポジトリーからダウンロードされることを指定します。 |
-n | 名前を基にしてプロジェクト定義のリストをソートします。 |
-p | chg サブコマンドの中で使用される場合は、このフラグにより、プロジェクト割り当て での変更を必要とするプロセス ID のリストを渡します。 add、rm、および chattr の各サブコマンドの中で使用される場合 は、このフラグにより、プロジェクト定義が更新される LDAP DN を指定します。ld および unld サブコマンドの中で使用される場合は、このフラグにより、プロジェクトおよびポリシーが LDAP リポジトリーにアップロードされることを指定します。 このフラグの引数は、プロジェクトおよびポリシーがアップロードされる DN を示します。 |
-r | ポリシーを再ロードします。 |
-s | projctl chattr agg サブコマンドで使用され、 プロジェクト集約プロパティーを使用可能にします。 |
-u | projctl chattr agg サブコマンドで使用され、 プロジェクト集約プロパティーを使用不可にします。 |
パラメーター
項目 | 説明 |
---|---|
admpath | 管理ポリシー・ファイルを選択する場所からのパス。 |
appname | 必要とされるプロジェクト割り当てリストを持つアプリケーションの、 絶対パス。 |
cmd line | projctl exec コマンドで実行されるコマンドの、 絶対パス。 |
comment | プロジェクト・コメント。 |
DN | LDAP サーバー上のプロジェクトおよびポリシーのオブジェクトに至る絶対パスを示す識別名。 |
name | LDAP サーバー上の代替管理ポリシー定義の名前。 |
pid | プロセス ID。 |
projname | プロジェクトの名前。 |
projnumber | プロジェクト用の数値。 |
projpath | プロジェクト定義ファイルを選択する場所からのパス。 |
sourceprojpath | マージするプロジェクト定義ファイルを選出する場所からのパス。 |
targetprojfile | プロジェクト定義がマージされるターゲット・プロジェクト定義ファイル。 |
サブコマンド
add サブコマンド
add サブコマンドは、プロジェクトの定義をプロジェクト定義ファイルに
追加します。–d フラグが指定されると、プロジェクト定義は、指定されたパスの下のプロジェクト定義ファイルに追加されます。
デフォルトでは、/etc/project/projdef システム・プロジェクト定義ファイルに
追加されます。これ以外のパスの下のプロジェクト定義ファイルは、.projdef: という
名前にする必要があります。
新規プロジェクトがシステム・プロジェクト定義ファイルに追加されるが、プロジェクトが
カーネルに既にロードされている場合は、指定された新規プロジェクトはカーネル・プロジェクト・レジストリーに
追加されます。それ以外の場合、
エントリーはファイル内にのみ作成されます。
add サブコマンドは、プロジェクト名、プロジェクト番号、および
プロジェクト・コメント用のオプション引数を、パラメーターとして入手します。
デフォルトでは、プロジェクトの集約プロパティーは、このコマンドを使用して
作成されたすべてのプロジェクトに対して no
に設定されます。
-p を指定した場合は、新規プロジェクト定義が LDAP サーバー上のデフォルト・ プロジェクト DN または指定された DN に追加されます。 -p を指定しない場合は、.config がソース情報を提供します。-p オプションの実行には、root 権限が必要です。
ProjectName:ProjectNumber:AggregationStatus::Comment
:: Project Definition File
:: Dated: 23-JUN-2003
AIX:3542:yes::To Classify AIX Legacy Applications
Test_Project:0x10000:yes::To Classify Testing work
chattr agg サブコマンド
chattr agg サブコマンドは、指定されたプロジェクトの集約プロパティーを 使用可能にしたり使用不可にしたりします。 -s フラグが使用されると、集約は使用可能になります。 -u フラグが使用されると、集約は使用不可になります。 –d フラグが指定されると、プロジェクト定義は、指定されたパスの下のプロジェクト定義ファイル内で更新されます。 デフォルトでは、システム・プロジェクト定義ファイル (/etc/project/projdef) を 更新します。更新がシステム・プロジェクト定義ファイルに対するもので、それがカーネルに既にロードされている場合は、指定された新規プロジェクトはカーネル・プロジェクト・レジストリーにおいても更新されます。 それ以外の場合、変更はプロジェクト定義ファイルに対してのみ行われます。
-p を指定した場合は、LDAP サーバー上のデフォルト・プロジェクト DN または指定された DN に関するプロジェクト定義が変更されます。 -p を指定しない場合は、.config がソース情報を提供します。 -p オプションの実行には、root 権限が必要です。
chg サブコマンド
chg サブコマンドにより、ユーザーは、自分のプロセス用に 使用することが許可されているプロジェクトのリストを変更することができます。 対象とするプロジェクト名が、このサブコマンドの入力として指定されます。 プロセス ID が入力として提供された場合は、これらのプロセスは 指定されたプロジェクトの下に分類されることになります。 入力として提供されたプロセス ID がない場合は、 プロジェクト変更は、projctl コマンドを開始したプロセスに 対して行われます。
デフォルトでは、chg サブコマンドは、使用可能なルールの有効範囲内で プロジェクト割り当てを変更します。 ルールをオーバーライドしてプロジェクトを直接にプロセスに割り当てる には、-f 強制オプションを指定する必要があります。
chk サブコマンド
chk サブコマンドは、さまざまなプロジェクト・ポリシーの 妥当性を検査します。サブコマンドは、プロジェクトおよびポリシーを安全にカーネルにロードできるように、 これらを妥当性検査します。 さまざまなプロジェクト・ポリシーをサポートするために、 いくつかの chk サブコマンドがあります。 サブコマンドを以下に示します。
項目 | 説明 |
---|---|
chkadm | 管理ポリシーを妥当性検査します。 管理ポリシー・ファイルの中の各ルールは通常、4 つの属性を持ちます。 すなわち、ユーザー ID、グループ ID、アプリケーション・パス、およびプロジェクト名です。 chkadm サブコマンドは、これらの属性が妥当か検査し、 ポリシーにエラーが見付かれば報告します。 -d オプションが使用される場合、chkadm サブコマンドは、 指定されたパスからの管理ポリシー・ファイルをルールの検査に使用します。 また、別名および一時プロジェクト定義ファイル (.projdef) も、 必要な場合には使用します。 ルールで使用されるプロジェクトは、システム・プロジェクト定義ファイルで 最初に検索されることになります。 プロジェクトがシステム・プロジェクト定義ファイルで見付からない場合は、指定されたパスの 下の .projdef ファイルが使用されます。 |
chkall | 上記の妥当性検査をすべて実行します。つまり、 プロジェクト、ユーザー、グループ、および管理ポリシーを妥当性検査します。–d オプションが使用される場合、chkadll サブルーチンは、指定されたパスからの管理、別名、およびプロジェクト定義ファイルを、管理ポリシーの妥当性検査に使用します。 |
chkgrp | グループ・ポリシーを妥当性検査します。 妥当性検査では、グループのプロジェクト・リストに妥当なプロジェクトが入っているか 検査することが必要です。 |
chkprojs | システム・プロジェクト定義ファイルを妥当性検査します。
プロジェクト定義は、固有性、プロジェクト名と番号の妥当性、および属性の妥当性について、
妥当性検査されます。
プロジェクト名は POSIX 英数字ストリングであることが必要で、
プロジェクト番号は 0x00000001 から 0x00ffffff の範囲内の数字であることが必要です。
プロジェクト番号は、10 進数か 16 進数のいずれかが可能です。
すべての 16 進数は、プレフィックス 0x を持つことが必要です。集約プロパティーは、y または n のいずれかが可能で、
集約の状況を示します。
chkprojs サブコマンドは、プロジェクト定義に対する
これらすべての妥当性検査を実行し、プロジェクト定義にエラーが見付かれば報告します。
|
chkusr | ユーザー・ポリシーを妥当性検査します。 妥当性検査では、ユーザーのプロジェクト・リストに妥当なプロジェクトが入っているか 検査することが必要です。 |
exec サブコマンド
exec サブコマンドは、ユーザーが、コマンドの処理対象となりうる プロジェクトのリストからのプロジェクト名のいずれかを使用して、 任意のコマンドを起動することができるようにします。 chg オプションと同様に、ルールをオーバーライドし任意のプロジェクトを使用して コマンド・ラインを実行するために使用される、-f 強制オプションを使用する必要があります。 コマンドを割り当てる対象となりうるプロジェクトのリストを取得する には、projctl qapp サブコマンドを使用します。
ld サブコマンド
項目 | 説明 |
---|---|
ld | システム起動時にロードされる必要のあるポリシーを、ロードします。 /etc/project/.config ファイルを参照して、 ロードするポリシーを判断します。 既にカーネルに、あるポリシーまたはプロジェクト定義がロードされている場合は、 このコマンドは単に戻ります。 |
ldadm | 管理ポリシーをロードします。
ldusr サブコマンドおよび ldgrp サブコマンドと
同様、ldadm も、プロジェクトがまだロードされていない場合は、
最初にプロジェクトを検査してロードします。それから、管理ポリシー・ルールを妥当性検査した
後でロードします。-d オプションが使用される場合、
管理ポリシー・ファイルは指定されたパスから選ばれます。
指定されたパスの下の別名および一時プロジェクト定義ファイルは、別名エントリーおよび
プロジェクト・エントリーの存在を検査するために使用されます。
ポリシーがロードされた後、このサブコマンドは、管理ポリシー・ファイルを /etc/project/.admin にコピーすることも行います。
LDAP に関連する管理ポリシーのロードは、以下の -p および
-g 引数によって処理されます。
|
ldall | ユーザー、グループ、および管理者の各ポリシーをカーネルにダウンロードします。 ldusr および ldgrp コマンドと同様に、プロジェクト用のアカウンティング DN が 指定されている場合は、このオプションでは、LDAP プロジェクトのダウンロードを試み ます。これは、ユーザーおよびグループ・ポリシーがローカルまたは LDAP ユーザーに 個々に関連付けられていないためです。 このコマンドは、ローカル管理ポリシーのダウンロードに加えて、構成済み管理 DN を使用して デフォルト管理ポリシーのダウンロードを試みます。 |
ldgrp | グループ・プロジェクト・ポリシーをロードします。 グループ・プロジェクト・ポリシーがまだロードされていない 場合、ldgrp サブコマンドは最初にプロジェクトを検査してロードします。 それからすべてのグループのプロジェクト・リストの妥当性を検査し、ルールをロードします。 |
ldprojs | システム・プロジェクト定義 /etc/project/projdef ファイルから、
プロジェクト定義をロードします。プロジェクトをロードする前に、ルールの妥当性を検査します。
ルールが妥当であれば、そのルールをロードします。
|
ldusr | ユーザー・プロジェクト・ポリシーをロードします。 ユーザー・プロジェクト・ポリシーがまだロードされていない 場合は、lduser サブコマンドは最初にプロジェクトを検査してロードします。 それからすべてのユーザーのプロジェクト・リストの妥当性を検査し、ルールをロードします。 |
- –r オプションが使用される場合、上記のすべてのサブコマンドは、それぞれのポリシーを再ロードします。 ld –r サブコマンドは、カーネルを照会して、ロードされたポリシーの詳細を取得し再ロードします。 再ロードするポリシー・ファイルは、/etc/project/.active ファイルから 参照されます。
- –d オプションと –r オプションの両方を指定して ldadm サブコマンドおよび ldall サブコマンドが出された場合、-r は無視されます。
- すべての ld サブコマンドは、 ロードされたポリシーの詳細を使用して /etc/project/.active ファイルを更新します。 -a オプションが渡された場合、これらのサブコマンドは、.active ファイルを更新するのに加えて、/etc/project/.config ファイルも更新します。 /etc/project/.config ファイルは、システム・リブート時に自動的に ロードされるポリシーについて、詳細を提供します。
merge サブコマンド
merge サブコマンドは、デフォルトでは、指定されたパスの下のプロジェクト定義ファイルで定義されたプロジェクトを、システム・プロジェクト定義 /etc/project/projdef ファイルと マージします。ターゲット・プロジェクト・ファイル名が -d オプションを使用して渡される場合は、指定されたパスの下のプロジェクト定義がターゲット・プロジェクト定義ファイルとマージされます。 マージ操作は、ターゲット・プロジェクト定義ファイルと指定されたパスの下のプロジェクト定義ファイル との間で矛盾するエントリーがあると、失敗します。merge コマンドは、重複するエントリーがあればスキップして、 ターゲット・プロジェクト定義ファイル内の固有なエントリーを維持します。
qapp サブコマンド
qapp サブコマンドは、現行環境内でアプリケーションが切り換える対象となりうる プロジェクトのリストを、表示します。 指定されたアプリケーションを開始させるのに使用できるすべてのプロジェクトのリストを、 表示します。
qpolicy サブコマンド
qpolicy サブコマンドは、現在ロードされているポリシーを表示します。 このコマンドはカーネルを照会して、ロードされたポリシーのタイプに関する情報を取得し、 それらを表示します。 -g を指定した場合は、このコマンドは、LDAP デフォルト管理 DN または指定された DN からポリシーをリストします。
qproj サブコマンド
qproj サブコマンドは、引数として渡されるプロジェクト名の 詳細を表示します。 引数が渡されない場合は、このサブコマンドは、呼び出しプロセスを割り当てる対象になりうる、 システム内のすべてのプロジェクト定義をリストします。 表示フォーマットは、qprojs サブコマンドと同じになります。
qprojs サブコマンド
qprojs サブコマンドは、カーネル・レジストリー内に現在ロードされている すべてのプロジェクト定義のリストを表示します。 -n オプションは、プロジェクト名を基にソートされたリストを提供します。 表示には、プロジェクト名、プロジェクト番号、およびプロジェクトの集約状況が入っています。
rm サブコマンド
rm サブコマンドは、プロジェクト定義ファイルから、 ローカルに定義されたプロジェクトの定義を除去します。–d フラグが指定されると、プロジェクト定義は、指定されたパスの下のプロジェクト定義ファイルから除去されます。 デフォルトでは、システム・プロジェクト定義ファイル (/etc/project/projdef) から プロジェクト定義を除去します。更新がシステム・プロジェクト定義ファイルに対するもので、それが カーネルに既にロードされている場合は、指定されたプロジェクトはカーネル・プロジェクト・レジストリーから 除去されます。 それ以外の場合、エントリーはファイルからのみ、除去されます。
unld サブコマンド
項目 | 説明 |
---|---|
unldadm | 管理ポリシーをアンロードします。 |
unldall | すべてのロードされたポリシーをアンロードします。 |
unldgrp | グループ・ポリシーをアンロードします。 |
unldprojs | プロジェクト定義のみをアンロードします。 |
unldusr | ユーザー・ポリシーをアンロードします。 |
- これらすべてのサブコマンドは、それぞれのポリシーがアンロードされた 後に .active ファイルを更新します。
- -a オプションが使用される場合、それぞれのポリシーのアンロード状況を 使用して /etc/project/.config ファイルも更新されます。
- -g パラメーターは、それぞれの LDAP リポジトリーをカーネルからアンロードする必要があることを指定するためのものです。 -g が指定されていない場合は、.active ファイルの中で指定されているロード済みリポジトリーがアンロードされます。
- LDAP サーバーから指定された LDAP リポジトリーを除去するには、-p オプションを指定する必要があります。
- unldadm および unsubcommand では、name パラメーターは、管理 DN に関する管理ポリシー名を示します。
終了状況
項目 | 説明 |
---|---|
0 | コマンドは正常に実行されました。 |
>0 | エラーが発生しました。
|
例
- システム・プロジェクト定義ファイルにプロジェクト
newproj
を追加するには、 次のように入力します。projctl add newproj 34 "Test Project"
- パス
/tmp/myproj
の下のプロジェクト定義ファイルから、 プロジェクトtest1
を除去するには、次のように入力します。projctl rm test1 –d /tmp/myproj
- プロジェクト
newproj
の集約状況を使用可能にするには、次のように入力します。projctl chattr agg newproj –s
- ps コマンドをプロジェクト
newproj
の下で実行し、 既存のルールをオーバーライドするには、次のように入力します。projctl exec newproj "/usr/bin/ps" –f
- 現在ロードされたポリシーを検索するには、次のように入力します。
出力:projctl qpolicy
Project definitions are loaded. Project definition file name: /etc/project/projdef User policies are loaded.
- 管理ポリシーをパス
/tmp/myproj
からロードするには、次のように入力します。projctl ldadm –d /tmp/myproj
- すべてのプロジェクト・ポリシーを、今、およびシステム・リブート時にアンロードするには、
次のように入力します。
projctl unldall -a
- 新規プロジェクトを別の DN (ここで DN は
ou=projects,ou=aacct,ou=cluster1,cn=aixdata
です) 上の LDAP リポジトリーに追加するには、次のように入力します。projctl add newproj 34 -p ou=projects,ou=aacct,ou=cluster1,cn=aixdata
- LDAP プロジェクトを、デフォルト DN から /etc/project/ldap パスの下のローカル・ファイルにダウンロードするには、次のように入力します。
projctl ldprojs -g -d /etc/project/ldap
- デフォルト DN 内のラベル
newdef
の下に保管されている LDAP 管理ポリシーをカーネルにロードするには、次のように入力します。projctl ldadm -g newdef
位置
/usr/bin/projctl
ファイル
項目 | 説明 |
---|---|
/usr/bin/projctl | projctl コマンドが入っています。 |
/etc/project/projdef | システム・プロジェクト定義ファイルが入っています。 |
/etc/project/ldap/projdef | デフォルトの LDAP プロジェクト定義ファイルが入っています。 |
/etc/project/.active | 現在ロードされたポリシーの状況が入っています。 |
/etc/project/.config | システム・リブート時にロードされるポリシーの状況が入っています。 |
/etc/security/ldap/ldap.cfg | 拡張アカウンティング データを処理するための LDAP クライアント構成の詳細が入っています。 |