Aller au contenu

CHGAUT

Modifier les droits

En bref

La commande CHGAUT (Modifier des droits) permet de modifier les droits d'un utilisateur sur l'objet ou le groupe d'objets désigné dans la commande.

CHGAUT se lit CHG (Modifier) + AUT. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

CHGAUT OBJ(…)

Paramètres

  • OBJ Objet obligatoire
  • USER Utilisat
  • DTAAUT Nouveaux droits sur données
  • OBJAUT Nouveaux droits sur l'objet
  • AUTL Liste d'autorisation
  • SUBTREE Branche du répertoire
  • SYMLNK Lien symbolique

Astuce : dans une session 5250, tapez CHGAUT puis F4 pour l'invite de saisie, et F1 sur un paramètre pour son aide.

Aide IBM i de la commande

Texte du F1, IBM i 7.5 en français (bibliothèque QSYS)

Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Oui

La commande CHGAUT (Modifier des droits) permet de modifier les droits d'un utilisateur sur l'objet ou le groupe d'objets désigné dans la commande. Vous pouvez modifier le droit sur un groupe d'objets associés à l'aide d'un masque de nom d'objet.

La commande CHGAUT permet également de modifier le droit d'une arborescence lorsque la modification de droit s'étend au répertoire, à son contenu et au contenu de tous les sous-répertoires associés. Indiquée avec SUBTREE(*ALL), cette commande tente de modifier le droit de tous les objets de la branche. Le système envoie un message de diagnostic pour chaque objet dont le droit n'est pas modifiable. Une fois la modification de droit essayée en vain sur tous les objets, le système envoie un message d'arrêt programme. Si la modification de droit aboutit pour tous les objets, le système envoie un message d'achèvement.

Si un objet lien symbolique est détecté (dans le paramètre Objet (OBJ) ou dans le traitement d'une branche), il reçoit la valeur indiquée pour le paramètre Lien symbolique (SYMLNK). S'il s'agit du traitement d'une branche, l'opération s'arrête car un objet lien symbolique ne peut pas comporter de branche.

Des droits peuvent être accordés aux utilisateurs suivants :

  • Utilisateurs nommés
  • Utilisateurs disposant des droits publics mais pas de droits spécifiques sur l'objet ou sur la liste d'autorisation.
  • Filtre de droits hérités NetWare pour le fichier (utilisé uniquement par le système de fichiers QNetWare).
  • Groupes d'utilisateurs qui ne disposent pas de droits sur l'objet et qui ne font pas partie de la liste d'autorisation protégeant l'objet.
  • Utilisateurs figurant sur une liste d'autorisation établie.

Si le paramètre DTAAUT a pour valeur *AUTL, les droits sont accordés aux utilisateurs suivants :

  • Utilisateurs ne disposant pas d'un droit spécifique sur un objet.
  • Utilisateurs ne figurant pas sur la liste d'autorisation qui protège l'objet.
  • Utilisateurs dont le groupe ne dispose pas de droits spécifiques.
  • Utilisateurs dont le groupe ne figure pas dans la liste d'autorisation qui protège l'objet.

DTAAUT(*AUTL) n'est admis que si USER a pour valeur *PUBLIC. Les profils utilisateur ne peuvent être protégés par une liste d'autorisation.

Reportez-vous à l'annexe D du manuel IBM i Security Reference, SC41-5302, pour connaître les droits requis pour l'utilisation de cette commande.

Pour plus d'informations sur les commandes du système de fichiers intégré, reportez-vous aux Rubriques Système de fichiers intégré de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Restrictions :

  • Lors d'un traitement par branche, vous devez également disposer des droits de lecture (*R) et d'exécution (*X) sur le nom de chemin et sur tous les sous-répertoires qu'il inclut.
  • Si les droits sont modifiés pour un objet faisant partie du système de fichiers QSYS.LIB ou du système indépendant ASP QSYS.LIB :
    1. Un utilisateur doit être propriétaire de l'objet ou disposer du droit spécial *ALLOBJ (tous les objets) pour exécuter cette commande sur un objet.
    2. Cette commande doit obtenir un verrouillage exclusif sur un fichier base de données avant d'accorder le droit de lecture ou le droit d'opération sur l'objet à un utilisateur.
    3. Si vous souhaitez accorder à un utilisateur des droits sur une unité alors que celle-ci est utilisée par un autre utilisateur autorisé, ces droits ne sont pas accordés.
    4. N'utilisez pas cette commande pour modifier les droits sur un objet liste d'autorisation (/QSYS.LIB/nom-liste-d'autorisation.AUTL).
    5. DTAAUT(*AUTL) n'est admis qu'avec USER(*PUBLIC).
    6. Une unité, un contrôleur ou une ligne doit être en fonction pour que vous puissiez accorder des droits pour l'utilisation de sa description.
    7. Dans le cas de claviers-écrans ou de files d'attente de messages associées, vous pouvez : (1) entrer cette commande sur l'unité pour laquelle les droits doivent être accordés ou (2) exécuter d'abord la commande ALCOBJ (Allouer un objet), puis la commande DLCOBJ (Désallouer un objet).

Paramètres

Mot-clé Description Valeurs possibles Remarques
OBJ Objet Chemin d'accès Obligatoire, positionnel 1
USER Utilisat Valeurs uniques: *PUBLIC
Autres valeurs (jusqu'à 50 répétitions): Nom
Facultatif, positionnel 2
DTAAUT Nouveaux droits sur données *SAME, *NONE, *RWX, *RX, *RW, *WX, *R, *W, *X, *EXCLUDE, *AUTL Facultatif, positionnel 3
OBJAUT Nouveaux droits sur l'objet Valeurs uniques: *SAME, *NONE, *ALL
Autres valeurs (jusqu'à 4 répétitions): *OBJEXIST, *OBJMGT, *OBJALTER, *OBJREF
Facultatif, positionnel 4
AUTL Liste d'autorisation Nom, *NONE Facultatif
SUBTREE Branche du répertoire *NONE, *ALL Facultatif
SYMLNK Lien symbolique *NO, *YES Facultatif

Objet (OBJ)

Indique l'objet (ou le masque correspondant à plusieurs objets) sur lequel des droits spécifiques doivent être accordés à un ou plusieurs utilisateurs ou à une liste d'autorisation.

Pour obtenir de plus amples informations relatives à la spécification des noms de chemin, reportez-vous à "Object naming rules" dans la rubrique Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Ce paramètre est obligatoire.

Remarque :Ce paramètre est compatible Unicode. Pour plus d'informations, reportez-vous à la section sur la prise en charge Unicode dans CL, dans les Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

nom-chemin
Indiquez le nom du chemin des objets pour lesquels les droits spécifiques doivent être modifiés.

Le nom du chemin de l'objet peut être soit un nom simple soit un nom qualifié du nom du répertoire contenant l'objet. Vous pouvez utiliser un masque dans la dernière partie du nom de chemin. Un astérisque (*) représente tout nombre de caractères et un point d'interrogation (?) correspond à un caractère unique. Si le nom de chemin est qualifié ou qu'il contient un masque, il doit être indiqué entre apostrophes.

Utilisat (USER)

Indique les utilisateurs dont les droits sur les objets indiqués pour le paramètre Objet (OBJ) doivent être modifiés. Si des noms d'utilisateurs sont indiqués, les droits associés sont spécifiquement modifiés.

Remarque :Vous devez indiquer ce paramètre ou le paramètre Liste d'autorisation (AUTL).

Valeurs uniques

*PUBLIC
Tout utilisateur qui ne dispose pas de droit sur l'objet à titre spécifique, qui ne figure pas dans la liste d'autorisation, dont le groupe ne détient aucun droit ou ne figure pas dans la liste d'autorisation, est autorisé à utiliser l'objet dans les conditions indiquées aux paramètres Nouveaux droits sur données (DTAAUT) et Nouveaux droits sur l'objet (OBJAUT).

Autres valeurs (jusqu'à 50 répétitions)

nom
Indiquez le nom du profil de l'utilisateur désigné comme détenteur de droits spécifiques sur l'objet. Vous pouvez indiquer jusqu'à 50 noms de profil utilisateur.

Nouveaux droits sur données (DTAAUT)

Indique les droits sur les données devant être accordés aux utilisateurs spécifiés dans le paramètre Utilisat (USER). Si une valeur autre que *SAME est précisée, celle-ci remplace les droits sur les données que les utilisateurs détiennent pour les objets.

*SAME
Les droits sur les données dont disposent les utilisateurs pour les objets ne sont pas modifiés.
*NONE
Aucun droit sur les données n'est accordé aux utilisateurs pour les objets.
*RWX
Les utilisateurs reçoivent les droits *RWX sur les objets. Ces droits permettent d'effectuer toutes les opérations sur les objets, à l'exception de celles réservées au propriétaire ou contrôlées par les droits de gestion et de modification des attributs de l'objet ainsi que par les droits d'existence et de référence sur l'objet. L'utilisateur peut modifier l'objet et effectuer des opérations de base sur celui-ci. Les droits *RWX comprennent le droit d'opération sur l'objet et tous les droits sur les données.
*RX
Les utilisateurs reçoivent les droits *RX qui permettent d'effectuer les opérations de base sur l'objet telles que l'exécution d'un programme ou l'affichage du contenu d'un fichier. Toutefois, cet utilisateur ne peut pas modifier l'objet. Les droits *RX comprennent le droit d'opération sur l'objet, ainsi que les droits de lecture et d'exécution.
*RW
Les utilisateurs reçoivent les droits *RW qui permettent de visualiser et de modifier le contenu d'un objet. Les droits *RW comprennent le droit d'opération sur l'objet, ainsi que les droits de lecture, d'ajout, de mise à jour et de suppression sur les données.
*WX
Les utilisateurs reçoivent les droits *WX qui permettent de modifier le contenu d'un objet, d'exécuter un programme, ou d'effectuer des recherches dans une bibliothèque ou un répertoire. Les droits *WX comprennent le droit d'opération sur l'objet, ainsi que les droits d'ajout, de mise à jour, de suppression et d'exécution sur les données.
*R
Les utilisateurs reçoivent les droits *R qui permettent de visualiser le contenu d'un objet. Ils comprennent le droit d'opération sur l'objet et le droit de lecture sur les données.
*W
Les utilisateurs reçoivent les droits *W qui permettent de modifier le contenu d'un objet. Ils comprennent le droit d'opération sur l'objet, ainsi que les droits d'ajout, de mise à jour et de suppression sur les données.
*X
Les utilisateurs reçoivent les droits *X qui permettent d'exécuter un programme, ou d'effectuer des recherches dans une bibliothèque ou un répertoire. Les droits *X comprennent le droit d'opération sur l'objet et le droit d'exécution sur les données.
*EXCLUDE
Le droit d'exclusion interdit à l'utilisateur l'accès à l'objet.
*AUTL
Les droits publics de la liste d'autorisation indiquée au paramètre AUTL sont utilisés pour l'objet.

Nouveaux droits sur l'objet (OBJAUT)

Indique les droits sur les objets devant être accordés aux utilisateurs spécifiés dans le paramètre Utilisat (USER). Si une valeur autre que *SAME est précisée, celle-ci remplace les droits sur les objets (*OBJEXIST, *OBJMGT, *OBJALTER et *OBJREF) dont les utilisateurs disposent actuellement.

Valeurs uniques

*SAME
Les droits sur les objets dont disposent les utilisateurs ne sont pas modifiés.
*NONE
Aucun autre droit sur l'objet (existence, gestion, modification ou référence) n'est accordé aux utilisateurs. Si *EXCLUDE ou *AUTL est indiqué au paramètre DTAAUT, cette valeur est requise.
*ALL
Tous les autres droits sur l'objet (existence, gestion, modification ou référence) sont accordés aux utilisateurs.

Autres valeurs (jusqu'à 4 répétitions)

*OBJEXIST
Le droit d'existence sur l'objet est accordé aux utilisateurs.
*OBJMGT
Le droit de gestion de l'objet est accordé aux utilisateurs.
*OBJALTER
Le droit de modification de l'objet est accordé aux utilisateurs.
*OBJREF
Le droit de référence sur l'objet est accordé aux utilisateurs.

Liste d'autorisation (AUTL)

Indique la liste d'autorisation dont les utilisateurs doivent recevoir les droits sur les objets indiqués dans le paramètre Objet (OBJ).

Remarque :Vous devez indiquer ce paramètre ou le paramètre Utilisateurs (USER). Si vous indiquez ce paramètre, les paramètres DTAAUT et OBJAUT sont ignorés.

*NONE
La liste d'autorisation en cours est enlevée de l'objet.
nom
Indiquez le nom de la liste d'autorisation à utiliser pour sécuriser l'objet. Si l'objet est protégé par une liste d'autorisation, celle-ci est désormais utilisée pour le sécuriser.

Branche du répertoire (SUBTREE)

Indique si les objets de la branche doivent être modifiés lorsque l'objet désigné par le paramètre Objet (OBJ) est un répertoire ou une bibliothèque.

*NONE
Les objets indiqués par le paramètre OBJ sont modifiés. Si l'objet est un répertoire ou une bibliothèque, il est modifié, mais son contenu ne l'est pas.
*ALL
Les objets indiqués par le paramètre OBJ sont modifiés. Si l'objet est un répertoire ou une bibliothèque, il est vérifié ainsi que son contenu et celui de tous les sous-répertoires associés.

Remarque :Le critère de concordance par rapport au paramètre OBJ ne s'applique qu'aux objets de premier niveau. Si l'objet de premier niveau est un répertoire ou une bibliothèque, le critère de concordance ne s'applique pas à son contenu ni à celui des sous-répertoires associés.

Remarque :La durée d'exécution de cette commande peut être longue avec SUBTREE(*ALL) lorsque de nombreux sous-répertoires doivent être traités.

Une fois que la commande a commencé à traiter une branche d'un répertoire spécifique, les objets localisés et traités peuvent être affectés par les opérations qui mettent à jour l'organisation des objets dans l'arborescence de répertoire spécifiée. Cela inclut, sans caractère limitatif, les éléments suivants :

  • Ajout, suppression ou nouvelle dénomination des liens d'objet
  • Montage ou démontage des systèmes de fichiers
  • Mise à jour du répertoire racine effectif pour le processus qui appelle la commande
  • Mise à jour du contenu d'un lien symbolique

Pour traiter la branche du répertoire, le code du système peut augmenter le nombre maximal de descripteurs de fichier, dans la portée du processus, qui peuvent être ouverts lors du traitement. Cette opération est effectuée afin que la commande ne soit pas susceptible d'échouer en raison d'un manque de descripteurs. Cette valeur maximale de portée de processus n'est pas réinitialisée à la fin de la commande.

Lien symbolique (SYMLNK)

Si l'objet est un lien symbolique, permet d'indiquer si vous voulez modifier le lien symbolique ou l'objet qu'il désigne.

*NO
L'objet lien symbolique n'est pas modifié, contrairement à l'objet désigné par le lien symbolique.
*YES
Si l'objet est un lien symbolique, le lien symbolique est modifié. L'objet désigné par le lien symbolique n'est pas modifié.

Exemples

Exemple 1 : modification des droits de tous les utilisateurs

CHGAUT   OBJ('/QSYS.LIB/USERLIB.LIB/PROGRAM1.PGM')
         USER(*PUBLIC)  DTAAUT(*RW)

Cette commande sert à octroyer le droit d'utiliser et modifier l'objet appelé PROGRAM1 à tous les utilisateurs du système auxquels aucuns droits spécifiques n'ont été expressément accordés, ne figurant pas dans une liste d'autorisation ou appartenant à des groupes d'utilisateurs n'ayant aucun droit sur l'objet ou ne figurant pas dans la liste d'autorisation. L'objet est un programme (*PGM) situé dans la bibliothèque USERLIB. Etant donné que le paramètre OBJAUT n'est pas spécifié, les droits sur les objets attribués à *PUBLIC restent en vigueur.

Exemple 2 : modification des droits d'utilisateurs figurant dans la liste d'autorisation

CHGAUT   OBJ('/QSYS.LIB/MYLIB.LIB/PRGM3.PGM')  AUTL(KLIST)

Cette commande accorde aux utilisateurs les droits qui leur sont attribués dans la liste d'autorisation KLIST pour l'objet PRGM3. L'objet est un programme situé dans la bibliothèque MYLIB.

Les exemples ci-après utilisent le diagramme suivant :

*            sym1 (lien symbolique vers dir1)
*
*
*                       dir1
*                       * * *
*                     *   *   *
*                    *    *    *
*               dir2.1  dir2.2  dir2.3
*                  *      *       *
*                  *      *       *
*               dir3.1  dir3.2  sym3.3 (lien symbolique vers dirA)
*
*
*                       dirA
*                       * * *
*                     *   *   *
*                    *    *    *
*               dirB.1  dirB.2  dirB.3
*

Exemple 3 : modification de droit d'un lien symbolique avec SYMLNK(*NO)

CHGAUT   OBJ('/sym1')  USER(JOEUSER) DTAAUT(*RX)
                       SUBTREE(*ALL) SYMLNK(*NO)

Cette commande détermine d'abord si des branches doivent être traitées. L'objet désigné dans le paramètre OBJ est un lien symbolique. Par conséquent, le paramètre SUBTREE est ignoré, car un objet lien symbolique ne possède pas de branche. Ensuite, l'objet désigné par le lien symbolique sym1 (dir1) devient la cible de l'opération car le paramètre SYMLNK indique que l'objet de lien symbolique ne doit pas être la cible de l'opération.

Dans cet exemple, le droit de JOEUSER sur dir1 est modifié. Les droits de JOEUSER sur l'objet lien symbolique (sym1) et sur le contenu de dir1 ne sont pas modifiés.

Exemple 4 : modification de droit d'un lien symbolique avec SYMLNK(*YES)

CHGAUT   OBJ('/sym1')  USER(JOEUSER) DTAAUT(*R) OBJAUT(*OBJMGT)
                       SUBTREE(*ALL) SYMLNK(*YES)

Cette commande détermine d'abord si des branches doivent être traitées. L'objet désigné dans le paramètre OBJ est un lien symbolique. Par conséquent, le paramètre SUBTREE est ignoré, car un objet lien symbolique ne possède pas de branche. Ensuite, l'objet de lien symbolique (sym1) devient la cible de l'opération car le paramètre SYMLNK indique que l'objet de lien symbolique doit être la cible de l'opération.

Dans cet exemple, le droit de JOEUSER sur sym1 est modifié. Les droits de JOEUSER sur l'objet désigné par le lien symbolique (dir1) et sur le contenu de dir1 ne sont pas modifiés.

Exemple 5 : modification de droit d'un répertoire avec SUBTREE(*ALL) et SYMLNK(*NO)

CHGAUT   OBJ('/dir1')  USER(JOEUSER) DTAAUT(*R) OBJAUT(*OBJMGT)
                       SUBTREE(*ALL) SYMLNK(*NO)

Cette commande détermine d'abord si des branches doivent être traitées. L'objet désigné dans le paramètre OBJ est un répertoire. Par conséquent, les branches sont traitées. Si un objet *SYMLNK est détecté lors du traitement de l'arborescence, il reçoit la valeur du paramètre SYMLNK. Lorsque le paramètre SYMLNK a pour valeur *NO, l'objet désigné par le lien symbolique devient la cible de l'opération. Ensuite, le traitement de cette branche de l'arborescence s'arrête, car l'objet *SYMLNK ne possède pas de branche.

Dans cet exemple, le droit de JOEUSER sur dir1, dir2.1, dir2.2, dir2.3, dir3.1, dir3.2, dirA est modifié. Le droit de JOEUSER sur sym3.3, dirB.1, dirB.2, dirB.3 n'est pas modifié.

Exemple 6 : modification de droit d'un répertoire avec SUBTREE(*ALL) et SYMLNK(*YES)

CHGAUT   OBJ('/dir1')  USER(JOEUSER) DTAAUT(*R) OBJAUT(*OBJMGT)
                       SUBTREE(*ALL) SYMLNK(*YES)

Cette commande détermine d'abord si des branches doivent être traitées. L'objet désigné dans le paramètre OBJ est un répertoire. Par conséquent, les branches sont traitées. Si un objet *SYMLNK est détecté lors du traitement de l'arborescence, il reçoit la valeur du paramètre SYMLNK. Lorsque le paramètre SYMLNK a pour valeur *YES, l'objet de lien symbolique devient la cible de l'opération. Ensuite, le traitement de cette branche de l'arborescence s'arrête, car l'objet *SYMLNK ne possède pas de branche.

Dans cet exemple, le droit de JOEUSER sur dir1, dir2.1, dir2.2, dir2.3, dir3.1, dir3.2, sym3.3 est modifié. Le droit de JOEUSER sur dirA, dirB.1, dirB.2, dirB.3 n'est pas modifié.

Exemple 7 : modification de droit d'un répertoire avec SUBTREE(*NONE) et SYMLNK(*NO)

CHGAUT   OBJ('/dir1')  USER(JOEUSER) DTAAUT(*R) OBJAUT(*OBJMGT)
                       SUBTREE(*NONE) SYMLNK(*NO)

Cette commande ne traite pas les branches. L'objet désigné dans le paramètre OBJ n'est pas un lien symbolique. Par conséquent, le paramètre SYMLNK est ignoré.

Le droit de JOEUSER sur dir1 est modifié.

REMARQUE :

Pour que les objets dirB.1, dirB.2 et dirB.3 deviennent la cible de l'opération, incluez-les individuellement dans le paramètre OBJ de la commande ou indiquez la commande avec OBJ('/dirA') and SUBTREE(*ALL).

Messages d'erreur

Messages *ESCAPE

CPE3101
Une erreur d'entrée-sortie irrécupérable s'est produite. A non-recoverable I/O error occurred.
CPE3408
L'adresse utilisée pour un argument n'était pas correcte. The address used for an argument was not correct.
CPE3418
Condition APAR possible ou panne matérielle. Possible APAR condition or hardware failure.
CPE3474
Unknown system state.
CPFA0AA
Une erreur s'est produite pendant l'allocation d'espace.
CPFA0AB
Erreur d'opération pour l'objet. L'objet est &1.
CPFA0AD
Fonction non acceptée par le système de fichiers.
CPFA0A2
Données incorrectes transmises à l'opération.
CPFA0A3
La résolution du nom de chemin provoque une boucle.
CPFA0A4
Trop de fichiers ouverts pour le traitement.
CPFA0A7
Le nom de chemin est trop long.
CPFA0A9
Objet introuvable. L'objet est &1.
CPFA0B1
Opération demandée non admise. Incident d'accès.
CPFA0C1
CCSID &1 incorrect.
CPFA0DD
Fonction interrompue.
CPFA0D4
Une erreur s'est produite dans le système de fichiers. Code erreur &1.
CPFA08B
Le nom de chemin ne peut pas commencer par *.
CPFA08C
Masque non admis dans répertoire du nom de chemin.
CPFA085
Répertoire initial de l'utilisateur &1 introuvable.
CPFA086
Apostrophe manquante dans nom de chemin.
CPFA087
Le nom de chemin contient un caractère indéfini.
CPFA088
Masque de nom de chemin incorrect.
CPFA089
Masque non admis dans nom de chemin.
CPFA09C
Aucun droit sur l'objet. L'objet est &1.
CPFA09D
Erreur dans le programme &1.
CPFA09E
L'objet est en cours d'utilisation. L'objet est &1.
CPFA091
Masque non admis pour le nom de l'utilisateur.
CPFA092
Le nom de chemin n'a pas été converti.
CPFA094
Le nom de chemin n'a pas été indiqué.
CPFBC50
Nom(s) d'accès introuvable(s).
CPF22F0
Erreurs imprévues lors du traitement.
CPF223A
&1 objets modifiés, &2 objets non modifiés.
CPF2283
La liste d'autorisation &1 n'existe pas.
CPF3BF6
La valeur de type de chemin d'accès n'est pas valide. Path Type value is not valid.
CPF4ACF
Echec de l'opération pour l'objet &1 dans &2 type *&3 en raison d'erreurs de réplication.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.