権限の変更 (CHGAUT)

権限変更(CHGAUT)コマンドは,このコマンドで名前を付けたオブジェクトまたはオブジェクトのグループに対するユーザーの権限を変更するために使用します。オブジェクト名のパターンを使用して,関連オブジェクトのグループの権限を変更することができます。

また,CHGAUTコマンドを使用して,ディレクトリー・ツリーの権限を変更することもできます。そのディレクトリー・ツリーでは,ディレクトリー,その内容,およびそのすべてのサブディレクトリーの内容が権限を変更されます。SUBTREE(*ALL)が指定されている場合には,このコマンドは,サブツリー内のすべてのオブジェクトの権限を変更しようとします。診断メッセージが,権限を変更できなかった各オブジェクトに送信され,すべてのオブジェクトが試行されると,エスケープ・メッセージが送信されます。すべてのオブジェクトでエラーなしで権限が変更された場合には,完了メッセージが送信されます。

オブジェクト (OBJ)パラメーターで指定されたか,あるいはサブツリーの処理中に見つかったシンボリック・リンク・オブジェクトを見つけた場合には,シンボリック・リンク (SYMLNK)パラメーターに指定した値がそのシンボリック・リンク・オブジェクトに適用されます。サブツリーの処理中の場合には,シンボリック・リンク・オブジェクト自身がサブツリーをもつことはできないので,サブツリーのその枝の処理が停止します。

次に対して権限を認可することができます。

DTAAUTパラメーターのAUTL値は,次のユーザーの権限を指定します。

DTAAUT (*AUTL)を使用できるのはUSER(*PUBLIC)だけです。権限リストによってユーザー・プロファイルを保護することはできません。

このコマンドを使用するのに必要な権限については,SYSTEM I機密保護解説書(SD88-5027)の付録Dを参照してください。

統合ファイル・システム・コマンドの詳細については,IBM I INFORMATION CENTER (HTTP://WWW.IBM.COM/SYSTEMS/I/INFOCENTER/)の「統合ファイル・システム」トピック・コレクションを参照してください。

制約事項:

パラメーター

キーワード 記述 選択項目 ノーツ
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
パス・タイプの値が正しくない。