権限の変更 (CHGAUT)
実行可能場所: すべての環境 (*ALL) スレッド・セーフ: はい |
パラメーター 例 エラー・メッセージ |
権限変更(CHGAUT)コマンドは,このコマンドで名前を付けたオブジェクトまたはオブジェクトのグループに対するユーザーの権限を変更するために使用します。オブジェクト名のパターンを使用して,関連オブジェクトのグループの権限を変更することができます。
また,CHGAUTコマンドを使用して,ディレクトリー・ツリーの権限を変更することもできます。そのディレクトリー・ツリーでは,ディレクトリー,その内容,およびそのすべてのサブディレクトリーの内容が権限を変更されます。SUBTREE(*ALL)が指定されている場合には,このコマンドは,サブツリー内のすべてのオブジェクトの権限を変更しようとします。診断メッセージが,権限を変更できなかった各オブジェクトに送信され,すべてのオブジェクトが試行されると,エスケープ・メッセージが送信されます。すべてのオブジェクトでエラーなしで権限が変更された場合には,完了メッセージが送信されます。
オブジェクト (OBJ)パラメーターで指定されたか,あるいはサブツリーの処理中に見つかったシンボリック・リンク・オブジェクトを見つけた場合には,シンボリック・リンク (SYMLNK)パラメーターに指定した値がそのシンボリック・リンク・オブジェクトに適用されます。サブツリーの処理中の場合には,シンボリック・リンク・オブジェクト自身がサブツリーをもつことはできないので,サブツリーのその枝の処理が停止します。
次に対して権限を認可することができます。
- 指定されたユーザー
- オブジェクトまたは権限リストのいずれかで特に権限が指定されていないPUBLICユーザー。
- ファイルのNETWARE継承権限フィルター(QNETWAREファイル・システムでのみ使用される)。
- オブジェクトに対する権限を持っていないか,あるいはオブジェクトを保護する権限リストにないユーザー・グループ。
- 確立された権限リストにあるユーザー。
DTAAUTパラメーターのAUTL値は,次のユーザーの権限を指定します。
- オブジェクトに対して特定権限を認可されていないユーザー
- オブジェクトを保護する権限リストにないユーザー
- そのユーザー・グループに特定権限が認可されていないユーザー
- そのユーザー・グループがオブジェクトを保護する権限リストにないユーザー
DTAAUT (*AUTL)を使用できるのはUSER(*PUBLIC)だけです。権限リストによってユーザー・プロファイルを保護することはできません。
このコマンドを使用するのに必要な権限については,SYSTEM I機密保護解説書(SD88-5027)の付録Dを参照してください。
統合ファイル・システム・コマンドの詳細については,IBM I INFORMATION CENTER (HTTP://WWW.IBM.COM/SYSTEMS/I/INFOCENTER/)の「統合ファイル・システム」トピック・コレクションを参照してください。
制約事項:
- サブツリー処理の実行時には,パス名およびそのパス内のすべてのサブディレクトリーに対する読み取り(*R)および実行(*X)権限も必要です。
- QSYS.LIBファイル・システムまたは独立ASP QSYS.LIBファイル・システム内のオブジェクトの権限を変更している場合:
- ユーザーはそのオブジェクトの所有者であるか,あるいはオブジェクトに対してこのコマンドを使用する全オブジェクト(*ALLOBJ)特殊権限をもっていなければなりません。
- ユーザーに読み取りまたはオブジェクト操作権限を与える前に,このコマンドはデータベース・ファイルで排他ロックを行わなければなりません。
- 認可された別のユーザーが現在使用中の装置に対して,他に指定されたユーザーの権限をユーザーが要求した場合には,その装置に対する権限は与えられません。
- 権限リスト・オブジェクト(/QSYS.LIB/権限リスト名.AUTL)に対する権限を変更するためにこのコマンドを使用してはいけません。
- DTAAUT(*AUTL)が有効なのは,USER(*PUBLIC)の場合だけです。
- 装置,制御装置,または回線記述の使用権限を与える前に,それと対応した装置,制御装置,または回線がオンに構成変更されていなければなりません。
- 表示装置の場合またはその表示装置と関連したワークステーション・メッセージ待ち行列の場合は,以下のいずれかを実行することができます。(1)権限が認可されることになる装置からこのコマンドを入力すること。または(2)オブジェクト割り振り(ALCOBJ)コマンドの前にこのコマンドを実行し,オブジェクト割り振り解除(DLCOBJ)の後にこのコマンドを実行すること。
上 |
パラメーター
キーワード | 記述 | 選択項目 | ノーツ |
---|---|---|---|
OBJ | オブジェクト | パス名 | 必須, 定位置 1 |
USER | ユーザー | 単一値: *PUBLIC その他の値 (最大 50 回の繰り返し): 名前 |
オプショナル, 定位置 2 |
DTAAUT | 新しいデータ権限 | *SAME, *NONE, *RWX, *RX, *RW, *WX, *R, *W, *X, *EXCLUDE, *AUTL | オプショナル, 定位置 3 |
OBJAUT | 新しいオブジェクト権限 | 単一値: *SAME, *NONE, *ALL その他の値 (最大 4 回の繰り返し): *OBJEXIST, *OBJMGT, *OBJALTER, *OBJREF |
オプショナル, 定位置 4 |
AUTL | 権限リスト | 名前, *NONE | オプショナル |
SUBTREE | ディレクトリーのサブツリー | *NONE, *ALL | オプショナル |
SYMLNK | シンボリック・リンク | *NO, *YES | オプショナル |
上 |
オブジェクト (OBJ)
特定権限が1人以上のユーザーまたは権限リストに付与されるオブジェクト,あるいは複数オブジェクトと一致するパターンを指定します。
パス名を指定するときの詳細については,IBM I INFORMATION CENTER (HTTP://WWW.IBM.COM/SYSTEMS/I/INFOCENTER/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクション の「オブジェクトの命名規則」を参照してください。
これは必須パラメーターです。
注: このパラメーターではUNICODEが使用可能です。詳しくは,IBM I INFORMATION CENTER (HTTP://WWW.IBM.COM/SYSTEMS/I/INFOCENTER/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクションで「CLでのUNICODEサポート」を参照してください。
- パス名
- 特定権限が変更されるオブジェクトのパス名を指定します。
オブジェクト・パス名は,単純名かあるいはオブジェクトが入っているディレクトリーの名前で修飾された名前とすることができます。パス名の最後の部分にパターンを指定することができます。アスタリスク(*)は任意の数の文字が突き合わされ,疑問符(?)は単一文字が突き合わされます。パス名が修飾されているか,あるいはパターンを含んでいる場合には,パス名をアポストロフィで囲まなければなりません。
上 |
ユーザー (USER)
オブジェクト (OBJ)パラメーターに指定されたオブジェクトに対する権限が変更されるユーザーを指定します。ユーザー名を指定した場合には,権限はそれらのユーザーに個々に変更されます。
注: このパラメーターまたは権限リスト (AUTL)パラメーターのいずれかを指定しなければなりません。
単一値
- *PUBLIC
- オブジェクトに対する特定権限を認可されていないか,権限リストにないか,そのユーザー・グループに権限がないか,あるいはそのユーザー・グループが権限リストにないユーザーは,すべて新しいデータ権限 (DTAAUT)および新しいオブジェクト権限(OBJAUT)パラメーターに指定されたオブジェクトの使用を認可されます。
その他の値(最大50個指定可能)
- 名前
- オブジェクトに対する特定権限を有するユーザーのユーザー・プロファイル名を指定します。最大50のユーザー・プロファイル名を指定することができます。
上 |
新しいデータ権限 (DTAAUT)
ユーザー (USER)パラメーターに指定されたユーザーに付与するデータ権限を指定します。*SAME以外の値が指定された場合には,この値は,そのオブジェクトに対して現在ユーザーがもっているデータ権限を置き換えます。
- *SAME
- オブジェクトに対するユーザーのデータ権限は変更されません。
- *NONE
- ユーザーには,オブジェクトに対するデータ権限がありません。
- *RWX
- ユーザーには,オブジェクトに対する*RWX権限が与えられます。*RWX権限によって,所有者に限定されるか,あるいはオブジェクト存在権限,オブジェクト管理権限,オブジェクト変更権限,およびオブジェクト参照権限によって管理されるものを除く,オブジェクトに対するすべての操作を実行することができます。ユーザーはオブジェクトを変更し,オブジェクトに対して基本的な機能を実行することができます。*RWX権限は,オブジェクト操作権限およびすべてのデータ権限を提供します。
- *RX
- ユーザーには,オブジェクトに対して基本操作(プログラムの実行やファイルの内容の表示など)を実行する*RX権限が与えられます。ユーザーはオブジェクトを変更することができません。*RX権限は,オブジェクト操作権限と,読み取りおよび実行の権限を提供します。
- *RW
- ユーザーには,オブジェクトの内容を表示し,オブジェクトの内容を変更する*RW権限が与えられます。*RW権限は,オブジェクト操作権限,およびデータの読み取り,追加,更新,および削除権限を提供します。
- *WX
- ユーザーには,オブジェクトの内容を変更し,プログラムを実行し,あるいはライブラリーやディレクトリーを検索する*WX権限が与えられます。*WX権限は,オブジェクト操作権限,およびデータの追加,更新,削除,および実行権限を提供します。
- *R
- ユーザーには,オブジェクトの内容を表示する*R権限が与えられます。*R権限は,オブジェクト操作権限およびデータ読み取り権限を提供します。
- *W
- ユーザーには,オブジェクトの内容を変更する*W権限が与えられます。*W権限は,オブジェクト操作権限,およびデータの追加,更新,削除権限を提供します。
- *X
- ユーザーには,プログラムを実行し,あるいはライブラリーやディレクトリーを検索する*X権限が与えられます。*X権限は,オブジェクト操作権限およびデータ実行権限を提供します。
- *EXCLUDE
- 排他権限は,ユーザーがオブジェクトをアクセスできないようにします。
- *AUTL
- AUTLパラメーターに指定された権限リストの一般ユーザー権限は,オブジェクトの共通権限のために使用されます。
上 |
新しいオブジェクト権限 (OBJAUT)
ユーザー (USER)パラメーターに指定されたユーザーに付与するオブジェクト権限を指定します。*SAME以外の値が指定された場合には,この値は,そのオブジェクトに対して現在ユーザーがもっているオブジェクト権限(*OBJEXIST, *OBJMGT, *OBJALTER,および*OBJREF)を置き換えます。
単一値
- *SAME
- そのオブジェクトに対するユーザーのオブジェクト権限は変更されません。
- *NONE
- ユーザーには,その他のオブジェクト権限(存在,管理,変更,または参照)はありません。DTAAUTパラメーターに*EXCLUDEまたは*AUTLが指定された場合には,この値を指定しなければなりません。
- *ALL
- ユーザーには,その他のすべてのオブジェクト権限(存在,管理,変更,または参照)が与えられます。
その他の値(最大4個指定可能)
- *OBJEXIST
- ユーザーには,そのオブジェクトに対するオブジェクト存在権限が与えられます。
- *OBJMGT
- ユーザーには,そのオブジェクトに対するオブジェクト管理権限が与えられます。
- *OBJALTER
- ユーザーには,そのオブジェクトに対するオブジェクト変更権限が与えられます。
- *OBJREF
- ユーザーには,そのオブジェクトに対するオブジェクト参照権限が与えられます。
上 |
権限リスト (AUTL)
ユーザーにオブジェクト (OBJ)パラメーターに指定されたオブジェクトに対する権限を付与する権限リストを指定します。
注: このパラメーターまたはユーザー (USER)パラメーターのいずれかを指定しなければなりません。このパラメーターを指定すると,DTAAUTおよびOBJAUTパラメーターは無視されます。
- *NONE
- 現行の権限リストはオブジェクトから除去されます。
- 名前
- オブジェクトを保護するのに使用する権限リストの名前を指定してください。オブジェクトが現在権限リストによって保護されている場合には,ここでは指定した権限リストがオブジェクトの保護に使用されます。
上 |
ディレクトリーのサブツリー (SUBTREE)
オブジェクト (OBJ)パラメーターで指定されたオブジェクトがディレクトリーまたはライブラリーの場合に,サブツリー内のオブジェクトを変更するかどうかを指定します。
- *NONE
- OBJパラメーターで指定されたオブジェクトが変更されます。オブジェクトがディレクトリーまたはライブラリーの場合には,これは変更されますが,そのディレクトリーまたはライブラリー内容は変更されません。
- *ALL
- OBJパラメーターで指定されたオブジェクトが変更されます。オブジェクトがディレクトリーまたはライブラリーの場合には,これはそのディレクトリーまたはライブラリーの内容およびすべてのサブディレクトリーの内容と同様に検査されます。
注: OBJパラメーターからのパターン・マッチングは第1レベルのオブジェクトにのみ適用されます。第1レベルのオブジェクトがディレクトリーまたはライブラリーの場合には,そのパターン・マッチングは,そのディレクトリーまたはライブラリーの内容またはそのサブディレクトリーの内容には適用されません。
注: 処理するサブディレクトリーがたくさんある場合には,SUBTREE(*ALL)を指定するとこのコマンドの実行に長時間かかることがあります。
コマンドが特定のディレクトリー・サブツリーの処理を開始すると,検出されて処理されるオブジェクトは,指定されたディレクトリー・ツリー内でのオブジェクトの編成を更新する操作の影響を受ける可能性があります。これには次のようなものがありますが,これらに限定されるわけではありません。
- オブジェクト・リンクの追加,除去,または名前変更
- ファイル・システムのマウントまたはマウント解除
- コマンドを呼び出すプロセスの有効ルート・ディレクトリーの更新
- シンボリック・リンクの内容の更新
ディレクトリー・サブツリーを処理するために,システム・コードは,処理中に開いておくことのできる処理対象ファイル記述子の最大数を増やすことができます。これは,コマンドが記述子の不足のために失敗しないようにするために行われます。この処理対象最大値は,コマンド完了時にリセットされません。
上 |
シンボリック・リンク (SYMLNK)
オブジェクトがシンボリック・リンクの場合には,シンボリック・シンボリック・リンクまたはそのシンボリック・リンクで指示されるオブジェクトを変更するかどうかを指定します。
- *NO
- シンボリック・リンク・オブジェクトは変更されません。そのシンボリック・リンクによって指示されるオブジェクトは変更されます。
- *YES
- オブジェクトがシンボリック・リンクの場合には,シンボリック・リンクが変更されます。そのシンボリック・リンクによって指示されるオブジェクトは変更されません。
上 |
例
例1:すべてのユーザーへの権限の変更
CHGAUT OBJ('/QSYS.LIB/USERLIB.LIB/PROGRAM1.PGM') USER(*PUBLIC) DTAAUT(*RW)
このコマンドは,PROGRAM1という名前のオブジェクトを使用および変更する権限を,権限が特に付与されていないか,権限リスト上にないか,ユーザー・グループにはそのオブジェクトに対する権限がないか,あるいはユーザー・グループが権限リスト上にないすべてのシステムのユーザーに付与します。このオブジェクトは,USERLIBという名前のライブラリー名内にあるプログラム(*PGM)です。OBJAUTパラメーターが指定されていないので,任意のオブジェクト権限*PUBLICは既に残っています。
例2:権限リストに対するユーザーへの権限の変更
CHGAUT OBJ('/QSYS.LIB/MYLIB.LIB/PRGM3.PGM') AUTL(KLIST)
このコマンドは,PRGM3という名前のオブジェクト名に対する権限リストで指定された権限をユーザーに付与します。このオブジェクトは,ライブラリーMYLIB内にあるプログラムです。
次の例では以下の図表を使用しています。
* SYM1 (DIR1へのシンボリック・リンク) * * * DIR1 * * * * * * * * * * * * * DIR2.1 DIR2.2 DIR2.3 * * * * * * * * * DIR3.1 DIR3.2 SYM3.3(DIRAへのシンボリック・リンク) * * * DIRA * * * * * * * * * * * * * DIRB.1 DIRB.2 DIRB.3 *
例3: SYMLNK(*NO)の場合のシンボリック・リンクの権限の変更
CHGAUT OBJ('/SYM1') USER(JOEUSER) DTAAUT(*RX) SUBTREE(*ALL) SYMLNK(*NO)
このコマンドは,まず処理するサブツリーあるかどうかを判断します。OBJパラメーターに指定されたオブジェクトがシンボリック・リンクであり,シンボリック・リンク・オブジェクトはサブツリーを持たないので,SUBTREEパラメーターは無視されます。次に,SYMLNKパラメーターによってシンボリック・リンク・オブジェクトが変更されないことが指定されているので,シンボリック・リンクSYM1によって示されたオブジェクト(DIR1)が変更されます。
この例では,DIR1に対するJOEUSERの権限が変更されます。シンボリック・リンク・オブジェクト(SYM1)に対するJOEUSERの権限は変更されず,またDIR1の内容に対するJOEUSERの権限も変更されません。
例4: SYMLNK(*YES)の場合のシンボリック・リンクの権限の変更
CHGAUT OBJ('/SYM1') USER(JOEUSER) DTAAUT(*R) OBJAUT(*OBJMGT) SUBTREE(*ALL) SYMLNK(*YES)
このコマンドは,まず処理するサブツリーあるかどうかを判断します。OBJパラメーターに指定されたオブジェクトがシンボリック・リンクであり,シンボリック・リンク・オブジェクトはサブツリーを持たないので,SUBTREEパラメーターは無視されます。次に,SYMLNKパラメーターによってシンボリック・リンク・オブジェクトが変更されることが指定されているので,シンボリック・リンク・オブジェクト(SYM1)が変更されます。
この例では,SYM1に対するJOEUSERの権限が変更されます。このシンボリック・リンクによって示されたオブジェクト(DIR1)に対するJOEUSERの権限は変更されず,またDIR1の内容に対するJOEUSERの権限も変更されません。
例5: SUBTREE(*ALL)およびSYMLNK(*NO)の場合のディレクトリーの権限の変更
CHGAUT OBJ('/DIR1') USER(JOEUSER) DTAAUT(*R) OBJAUT(*OBJMGT) SUBTREE(*ALL) SYMLNK(*NO)
このコマンドは,まず処理するサブツリーあるかどうかを判断します。OBJパラメーターに指定されたオブジェクトがディレクトリーであるため,サブツリーが処理されます。ツリーの処理で*SYMLNKオブジェクトが見つかると,SYMLNK パラメーターの値がその*SYMLNKオブジェクトに適用されます。SYMLNKパラメーターが*NOであると,シンボリック・リンクで示されるオブジェクトが変更されます。 *SYMLNKオブジェクト自体はサブツリーを持たないので,ツリーの枝の処理はここで停止します。
この例では,DIR1, DIR2.1, DIR2.2, DIR2.3, DIR3.1, DIR3.2, DIRAに対するJOEUSERの権限が変更されます。SYM3.3, DIRB.1, DIRB.2, DIRB.3に対するJOEUSERの権限は変更されません。
例6: SUBTREE(*ALL)およびSYMLNK(*YES)の場合のディレクトリーの権限の変更
CHGAUT OBJ('/DIR1') USER(JOEUSER) DTAAUT(*R) OBJAUT(*OBJMGT) SUBTREE(*ALL) SYMLNK(*YES)
このコマンドは,まず処理するサブツリーあるかどうかを判断します。OBJパラメーターに指定されたオブジェクトがディレクトリーであるため,サブツリーが処理されます。ツリーの処理で*SYMLNKオブジェクトが見つかると,SYMLNKパラメーターの値がその*SYMLNKオブジェクトに適用されます。SYMLNKパラメーターが*YESであると,シンボリック・リンク・オブジェクトが変更されます。 *SYMLNKオブジェクト自体はサブツリーを持たないので,ツリーの枝の処理はここで停止します。
この例では,DIR1, DIR2.1, DIR2.2, DIR2.3, DIR3.1, DIR3.2, SYM3.3に対するJOEUSERの権限が変更されます。DIRA, DIRB.1, DIRB.2, DIRB.3に対するJOEUSERの権限は変更されません。
例7: SUBTREE(*NONE) および SYMLNK(*NO)の場合のディレクトリーの権限の変更
CHGAUT OBJ('/DIR1') USER(JOEUSER) DTAAUT(*R) OBJAUT(*OBJMGT) SUBTREE(*NONE) SYMLNK(*NO)
このコマンドは,サブツリーを処理しません。 OBJパラメーターに指定されたオブジェクトがシンボリック・リンクでないので,SYMLNKパラメーターは無視されます。
DIR1に対するJOEUSERの権限が変更されます。
注:
DIRB.1, DIRB.2,およびDIRB.3を変更する唯一の方法は,変更コマンドのOBJパラメーターに個別にそれらを指定するか,OBJ(DIRA)およびSUBTREE(*ALL)のある変更コマンドを指定することです。
上 |
エラー・メッセージ
*ESCAPE メッセージ
- CPE3101
- 回復不能入出力エラーが起こりました。
- CPE3408
- 引き数に使用されたアドレスが正しくない。
- CPE3418
- 考えられるAPAR条件またはハードウェア障害。
- CPE3474
- 不明なシステム状態。
- CPFA0AA
- スペースを獲得しようとしている時にエラーが起こった。
- CPFA0AB
- オブジェクトの操作が失敗しました。オブジェクトは&1です。
- CPFA0AD
- 機能がファイル・システムによってサポートされていない。
- CPFA0A2
- この操作に渡された情報が正しくない。
- CPFA0A3
- パス名分析解決によりループしている。
- CPFA0A4
- 処理するにはオープンされているファイルが多すぎる。
- CPFA0A7
- パス名が長すぎる。
- CPFA0A9
- オブジェクトが見つからない。オブジェクトは&1です。
- CPFA0B1
- 要求された操作は使用できない。アクセスの問題です。
- CPFA0C1
- CCSID &1は正しくない。
- CPFA0DD
- 機能が中断した。
- CPFA0D4
- ファイル・システム・エラーが起こった。エラー番号は&1です。
- CPFA08B
- パス名を*で始めることはできない。
- CPFA08C
- パス名ディレクトリーにはパターンを使用できない。
- CPFA085
- ユーザー&1のホーム・ディレクトリーが見つからなかった。
- CPFA086
- パス名で対応する引用符が見つからなかった。
- CPFA087
- パス名にヌル文字が入っている。
- CPFA088
- パス名パターンが正しくない。
- CPFA089
- パス名にパターンは使用できない。
- CPFA09C
- オブジェクトが認可されていない。オブジェクトは&1です。
- CPFA09D
- プログラム&1でエラーが起こった。
- CPFA09E
- オブジェクトが使用中。オブジェクトは&1です。
- CPFA091
- ユーザー名ではパターンは使用できない。
- CPFA092
- パス名が変換されなかった。
- CPFA094
- パス名が指定されていない。
- CPFBC50
- 1つまたは複数のパス名が見つからない。
- CPF22F0
- 処理時に予期しないエラーが起こりました。
- CPF223A
- &1個のオブジェクトが変更され,&2個のオブジェクトが変更されていません。
- CPF2283
- 権限リスト&1が存在していない。
- CPF3BF6
- パス・タイプの値が正しくない。
上 |