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<cmdline>[-f]
プロジェク チャトル アグ プロジェクト名 {-s|-u} [ { -d プロジェクトパス | -p [識別名] } ]
projctl qpolicy[-g[DN] ]
projctl qproj[プロジェクト名]
プロジェク アプリ アプリ名
projctl {chkusr|chkgrp|chkprojs|{{chkadm|chkall}[-d admpath]}}
projctl ldprojs -g[DN]-d projpath
projctl ldprojs -p[DN]-d projpath
projctl unldprojs -g[DN] [-f] [-a]
projctl ldadm -g[名前] [-r] [-a]
projctl ldadm -g[名前:]DN|名前]。 -d admpath
projctl ldadm -p[[名前:]DN|名前]。 -d admpath
projctl unldadm -p[[名前:]DN|名前]
説明
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 | 管理ポリシー・ファイルを選択する場所からのパス。 |
| アプリ名 | 必要とされるプロジェクト割り当てリストを持つアプリケーションの、 絶対パス。 |
| cmd 行 | projctl exec コマンドで実行されるコマンドの、 絶対パス。 |
| コメント | プロジェクト・コメント。 |
| DN | LDAP サーバー上のプロジェクトおよびポリシーのオブジェクトに至る絶対パスを示す識別名。 |
| name | LDAP サーバー上の代替管理ポリシー定義の名前。 |
| pid | プロセス ID。 |
| PROJNAME | プロジェクトの名前。 |
| プロジェクト番号 | プロジェクト用の数値。 |
| プロジェクト・パス | プロジェクト定義ファイルを選択する場所からのパス。 |
| ソース・プロジェクト・パス | マージするプロジェクト定義ファイルを選出する場所からのパス。 |
| targetprojfile | プロジェクト定義がマージされるターゲット・プロジェクト定義ファイル。 |
サブコマンド
ADD サブコマンド
add サブコマンドは、プロジェクトの定義をプロジェクト定義ファイルに
追加します。 dフラグが指定された場合、プロジェクト定義は、指定されたパスの下にあるプロジェクト定義ファイルに追加されます。 デフォルトでは、/etc/project/projdef システム・プロジェクト定義ファイルに
追加されます。 これ以外のパスの下のプロジェクト定義ファイルは、.projdef: という
名前にする必要があります。 新規プロジェクトがシステム・プロジェクト定義ファイルに追加されるが、プロジェクトが
カーネルに既にロードされている場合は、指定された新規プロジェクトはカーネル・プロジェクト・レジストリーに
追加されます。 それ以外の場合、
エントリーはファイル内にのみ作成されます。 add サブコマンドは、プロジェクト名、プロジェクト番号、および
プロジェクト・コメント用のオプション引数を、パラメーターとして入手します。 デフォルトでは、プロジェクトの集約プロパティーは、このコマンドを使用して
作成されたすべてのプロジェクトに対して no に設定されます。
-p指定すると、デフォルトのプロジェクトDNまたはLDAPサーバーの指定した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 workchattr agg サブコマンド
chattr agg サブコマンドは、指定されたプロジェクトの集約プロパティーを 使用可能にしたり使用不可にしたりします。 -s フラグが使用されると、集約は使用可能になります。 -u フラグが使用されると、集約は使用不可になります。 dフラグが指定された場合、プロジェクト定義は指定されたパスのプロジェクト定義ファイルに更新されます。 デフォルトでは、システム・プロジェクト定義ファイル (/etc/project/projdef) を 更新します。 更新がシステム・プロジェクト定義ファイルに対するもので、それがカーネルに既にロードされている場合は、指定された新規プロジェクトはカーネル・プロジェクト・レジストリーにおいても更新されます。 それ以外の場合、変更はプロジェクト定義ファイルに対してのみ行われます。
-pを指定すると、デフォルトのプロジェクトDNまたはLDAPサーバーの指定したDNでプロジェクト定義を変更する。 -pが指定されない場合は、.configソース情報を提供する。 -pオプションを実行するには、root権限が必要である。
chg サブコマンド
chg サブコマンドにより、ユーザーは、自分のプロセス用に 使用することが許可されているプロジェクトのリストを変更することができます。 対象とするプロジェクト名が、このサブコマンドの入力として指定されます。 プロセス ID が入力として提供された場合は、これらのプロセスは 指定されたプロジェクトの下に分類されることになります。 入力として提供されたプロセス ID がない場合は、 プロジェクト変更は、projctl コマンドを開始したプロセスに 対して行われます。
デフォルトでは、chg サブコマンドは、使用可能なルールの有効範囲内で プロジェクト割り当てを変更します。 ルールをオーバーライドしてプロジェクトを直接にプロセスに割り当てる には、-f 強制オプションを指定する必要があります。
chk サブコマンド
chk サブコマンドは、さまざまなプロジェクト・ポリシーの 妥当性を検査します。 サブコマンドは、プロジェクトおよびポリシーを安全にカーネルにロードできるように、 これらを妥当性検査します。 さまざまなプロジェクト・ポリシーをサポートするために、 いくつかの chk サブコマンドがあります。 サブコマンドを以下に示します。
| 項目 | 説明 |
|---|---|
| チャカドム | 管理ポリシーを妥当性検査します。 管理ポリシー・ファイルの中の各ルールは通常、4 つの属性を持ちます。 すなわち、ユーザー ID、グループ ID、アプリケーション・パス、およびプロジェクト名です。 chkadm サブコマンドは、これらの属性が妥当か検査し、 ポリシーにエラーが見付かれば報告します。 -d オプションが使用される場合、chkadm サブコマンドは、 指定されたパスからの管理ポリシー・ファイルをルールの検査に使用します。 また、別名および一時プロジェクト定義ファイル (.projdef) も、 必要な場合には使用します。 ルールで使用されるプロジェクトは、システム・プロジェクト定義ファイルで 最初に検索されることになります。 プロジェクトがシステム・プロジェクト定義ファイルで見付からない場合は、指定されたパスの 下の .projdef ファイルが使用されます。 |
| チャコール | 上記の妥当性検査をすべて実行します。つまり、 プロジェクト、ユーザー、グループ、および管理ポリシーを妥当性検査します。 dオプションを使用すると、chkadllサブルーチンは指定されたパスのadmin、alias、project定義ファイルを使用して、adminポリシーを検証する。 |
| チャック | グループ・ポリシーを妥当性検査します。 妥当性検査では、グループのプロジェクト・リストに妥当なプロジェクトが入っているか 検査することが必要です。 |
| chkprojs | システム・プロジェクト定義ファイルを妥当性検査します。 プロジェクト定義は、固有性、プロジェクト名と番号の妥当性、および属性の妥当性について、
妥当性検査されます。 プロジェクト名は POSIX 英数字ストリングであることが必要で、
プロジェクト番号は 0x00000001 から 0x00ffffff の範囲内の数字であることが必要です。 プロジェクト番号は、10 進数か 16 進数のいずれかが可能です。 すべての 16 進数は、プレフィックス 0x を持つことが必要です。 集約プロパティーは、y または n のいずれかが可能で、
集約の状況を示します。 chkprojs サブコマンドは、プロジェクト定義に対する
これらすべての妥当性検査を実行し、プロジェクト定義にエラーが見付かれば報告します。 |
| チャクスル | ユーザー・ポリシーを妥当性検査します。 妥当性検査では、ユーザーのプロジェクト・リストに妥当なプロジェクトが入っているか 検査することが必要です。 |
exec サブコマンド
exec サブコマンドは、ユーザーが、コマンドの処理対象となりうる プロジェクトのリストからのプロジェクト名のいずれかを使用して、 任意のコマンドを起動することができるようにします。 chg オプションと同様に、ルールをオーバーライドし任意のプロジェクトを使用して コマンド・ラインを実行するために使用される、-f 強制オプションを使用する必要があります。 コマンドを割り当てる対象となりうるプロジェクトのリストを取得する には、projctl qapp サブコマンドを使用します。
ld サブコマンド
| 項目 | 説明 |
|---|---|
| ld | システム起動時にロードされる必要のあるポリシーを、ロードします。 /etc/project/.config ファイルを参照して、 ロードするポリシーを判断します。 既にカーネルに、あるポリシーまたはプロジェクト定義がロードされている場合は、 このコマンドは単に戻ります。 |
| ldadm | 管理ポリシーをロードします。 ldusr サブコマンドおよび ldgrp サブコマンドと
同様、ldadm も、プロジェクトがまだロードされていない場合は、
最初にプロジェクトを検査してロードします。 それから、管理ポリシー・ルールを妥当性検査した
後でロードします。 -d オプションが使用される場合、
管理ポリシー・ファイルは指定されたパスから選ばれます。 指定されたパスの下の別名および一時プロジェクト定義ファイルは、別名エントリーおよび
プロジェクト・エントリーの存在を検査するために使用されます。 ポリシーがロードされた後、このサブコマンドは、管理ポリシー・ファイルを /etc/project/.admin にコピーすることも行います。 LDAPに関連する管理ポリシーのロードは、以下の「-p」と「-g引数によって処理される:
|
| ラドール | ユーザー、グループ、および管理者の各ポリシーをカーネルにダウンロードします。 ldusr」および「ldgrpコマンドと同様に、このオプションは、プロジェクトにアカウンティング DN が指定されている場合に LDAP プロジェクトのダウンロードを試みます。 このコマンドは、ローカル管理ポリシーのダウンロードに加えて、構成済み管理 DN を使用して デフォルト管理ポリシーのダウンロードを試みます。 |
| ldgrp | グループ・プロジェクト・ポリシーをロードします。 グループ・プロジェクト・ポリシーがまだロードされていない 場合、ldgrp サブコマンドは最初にプロジェクトを検査してロードします。 それからすべてのグループのプロジェクト・リストの妥当性を検査し、ルールをロードします。 |
| ldprojs | システム・プロジェクト定義 /etc/project/projdef ファイルから、
プロジェクト定義をロードします。 プロジェクトをロードする前に、ルールの妥当性を検査します。 ルールが妥当であれば、そのルールをロードします。
|
| ldusr | ユーザー・プロジェクト・ポリシーをロードします。 ユーザー・プロジェクト・ポリシーがまだロードされていない 場合は、lduser サブコマンドは最初にプロジェクトを検査してロードします。 それからすべてのユーザーのプロジェクト・リストの妥当性を検査し、ルールをロードします。 |
- rオプションを使用すると、上記のすべてのサブコマンドがそれぞれのポリシーをリロードする。 ld-rサブコマンドはカーネルに問い合わせ、ロードされたポリシーの詳細を取得し、それらを再ロードする。 再ロードするポリシー・ファイルは、/etc/project/.active ファイルから 参照されます。
- ldadmと ldallサブコマンドが-dオプションと -rオプションの両方で発行された場合、-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 サブコマンド
| 項目 | 説明 |
|---|---|
| アンデッドム | 管理ポリシーをアンロードします。 |
| アンドール | すべてのロードされたポリシーをアンロードします。 |
| アングループ | グループ・ポリシーをアンロードします。 |
| 非ldprojs | プロジェクト定義のみをアンロードします。 |
| アンデュサール | ユーザー・ポリシーをアンロードします。 |
- これらすべてのサブコマンドは、それぞれのポリシーがアンロードされた 後に .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 qpolicyProject 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 クライアント構成の詳細が含まれます。 |