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
-
OBJObjet obligatoire -
NEWOWNNom du nouveau propriétaire obligatoire -
RVKOLDAUTRévoquer les droits en cours -
SUBTREEBranche du répertoire -
SYMLNKLien 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.