Aller au contenu

CHGOWN

Modifier le propriétaire

En bref

La commande CHGOWN (Modifier le propriétaire) transfère la propriété d'un objet ou d'un groupe d'objets d'un utilisateur à un autre.

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

Syntaxe minimale

CHGOWN OBJ(…) NEWOWN(…)

Paramètres

  • OBJ Objet obligatoire
  • NEWOWN Nom du nouveau propriétaire obligatoire
  • RVKOLDAUT Révoquer les droits en cours
  • SUBTREE Branche du répertoire
  • SYMLNK Lien symbolique

Astuce : dans une session 5250, tapez CHGOWN 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 : Non

La commande CHGOWN (Modifier le propriétaire) transfère la propriété d'un objet ou d'un groupe d'objets d'un utilisateur à un autre. Vous pouvez modifier le droit sur un groupe d'objets associés à l'aide d'un masque de nom d'objet. Les droits dont les autres utilisateurs disposent sur cet objet ne sont pas modifiés.

La commande CHGOWN permet également de modifier le propriétaire d'une arborescence lorsque la modification de propriétaire 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 propriétaire de tous les objets de la branche. Le système envoie un message de diagnostic pour chaque objet dont le propriétaire n'est pas modifiable. Une fois la modification de propriétaire essayée en vain sur tous les objets, le système envoie un message d'arrêt programme. Si la modification de propriétaire 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.

Le propriétaire d'un objet dispose toujours de tous les droits applicables à l'objet sauf s'ils sont explicitement révoqués. Le propriétaire est autorisé à accorder aux autres utilisateurs n'importe quel droit sur l'objet qu'il possède. Les propriétaires peuvent également accorder à eux-mêmes des droits précédemment révoqués. Ils peuvent, par exemple, supprimer certains des droits dont ils disposent à titre de précaution et, le cas échéant, accorder de nouveau les mêmes droits à eux-mêmes.

Un utilisateur disposant du droit spécial *ALLOBJ possède tous les droits sur tous les objets et peut transférer leur propriété. Tous les utilisateurs possèdent les droits d'ajout (*ADD) et de suppression (*DLT) sur leur propre profil utilisateur ; en d'autres termes, ils peuvent ajouter ou supprimer des objets (qu'ils ont créés) dans leur profil utilisateur en modifiant les droits de propriété associés.

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 :

  • Pour transférer la propriété d'un objet dans le système de fichiers QSYS.LIB ou QSYS.LIB de l'ASP indépendant, vous devez disposer :
    • du droit d'existence sur l'objet (*OBJEXIST) ;
    • des droits d'opération (*OBJOPR) et d'existence sur l'objet (*OBJEXIST) dans le cas d'une description de fichier, de bibliothèque ou de sous-système ;
    • du droit spécial *ALLOBJ sur l'objet ou de la propriété de ce dernier dans le cas d'une liste d'autorisation ;
    • des droits d'ajout (*ADD) sur le profil utilisateur du nouveau propriétaire ;
    • des droits de suppression (*DLT) sur le profil utilisateur du propriétaire en cours ;
    • des droits spéciaux *ALLOBJ et *SECADM (administrateur de la sécurité) pour modifier le propriétaire d'un programme qui adopte des droits.
  • Le transfert de la propriété d'un objet associé à un dépositaire de droits modifie également la propriété de ce dépositaire de droits.
  • Lors d'un traitement par branche, vous devez 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.

Paramètres

Mot-clé Description Valeurs possibles Remarques
OBJ Objet Chemin d'accès Obligatoire, positionnel 1
NEWOWN Nom du nouveau propriétaire Nom Obligatoire, positionnel 2
RVKOLDAUT Révoquer les droits en cours *NO, *YES 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) dont le propriétaire doit être modifié.

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 dont le propriétaire doit être modifié.

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.

Nom du nouveau propriétaire (NEWOWN)

Indique le profil utilisateur du propriétaire de l'objet. Le profil utilisateur doit déjà exister lors de l'exécution de cette commande.

Ce paramètre est obligatoire.

nom
Indiquez le nom du profil utilisateur.

Révoquer les droits en cours (RVKOLDAUT)

Indique si les droits du propriétaire en cours sont révoqués lorsque la propriété est transférée au nouveau propriétaire précisé au paramètre Nom du nouveau propriétaire (NEWOWN).

*YES
Les droits du propriétaire en cours sont révoqués.
*NO
Les droits du propriétaire en cours ne sont pas modifiés.

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 du propriétaire d'un programme

CHGOWN   OBJ('/QSYS.LIB/USERLIB.LIB/PROGRAM1.PGM')  NEWOWN(ANN)

Cette commande attribue la propriété du programme appelé PROGRAM1, situé dans la bibliothèque USERLIB, à l'utilisateur ANN. Le droit de l'utilisateur en cours est révoqué.

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 2 : modification du propriétaire d'un lien symbolique avec SYMLNK(*NO)

CHGOWN   OBJ('/sym1')  NEWOWN(SAM) 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 propriétaire de dir1 devient SAM et le droit associé détenu par le propriétaire en cours est révoqué. Le propriétaire de l'objet lien symbolique (sym1) et celui du contenu de dir1 ne sont pas modifiés.

Exemple 3 : modification du propriétaire d'un lien symbolique avec SYMLNK(*YES)

CHGOWN   OBJ('/sym1')  NEWOWN(JOE) 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 propriétaire de sym1 devient JOE et le droit associé détenu par le propriétaire en cours est révoqué. Le propriétaire de l'objet désigné par le lien symbolique (dir1) et celui du contenu de dir1 ne sont pas modifiés.

Exemple 4 : modification du propriétaire d'un répertoire avec SUBTREE(*ALL) et SYMLNK(*NO)

CHGOWN   OBJ('/dir1')  NEWOWN(PETE)  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 propriétaire de dir1, dir2.1, dir2.2, dir2.3, dir3.1, dir3.2, dirA devient PETE et le droit détenu par les propriétaires en cours sur ces répertoires est révoqué. Le propriétaire de sym3.3, dirB.1, dirB.2, dirB.3 n'est pas modifié.

Exemple 5 : modification du propriétaire d'un répertoire avec SUBTREE(*ALL) et SYMLNK(*YES)

CHGOWN   OBJ('/dir1')  NEWOWN(GEORGE)  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 propriétaire de dir1, dir2.1, dir2.2, dir2.3, dir3.1, dir3.2, sym3.3 devient GEORGE et le droit associé détenu par les propriétaires en cours est révoqué. Le propriétaire de dirA, dirB.1, dirB.2, dirB.3 n'est pas modifié.

Exemple 6 : modification du propriétaire d'un répertoire avec SUBTREE(*NONE) et SYMLNK(*NO)

CHGOWN   OBJ('/dir1')  NEWOWN(BETTY)  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 propriétaire de dir1 devient BETTY et le droit associé détenu par le propriétaire en cours est révoqué.

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
Aucun objet ne correspond à la demande.
CPFA0C1
CCSID &1 incorrect.
CPFA0CE
La valeur indiquée au paramètre de nom de chemin a provoqué une erreur.
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).
CPF220A
Le nouveau propriétaire &1 n'a pas de numéro d'ID utilisateur.
CPF2204
Profil utilisateur &1 non trouvé.
CPF2213
Impossible d'allouer le profil utilisateur &1.
CPF2217
Non autorisé au profil utilisateur &1.
CPF223A
&1 objets modifiés, &2 objets non modifiés.
CPF22F0
Erreurs imprévues lors du traitement.
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.