Aller au contenu

CHKOBJITG

Vérifier intégrité des objets

En bref

La commande CHKOBJITG (Vérifier l'intégrité des objets) permet de contrôler les objets appartenant au profil utilisateur indiqué, ceux correspondant au nom de chemin défini ou tous les objets du système, afin de déterminer si certains d'entre eux entraînent des violations d'intégrité.

CHKOBJITG se lit CHK (Vérifier) + OBJITG. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

CHKOBJITG

Paramètres

  • USRPRF Profil utilisateur, ou
  • OBJ Objet
  • OUTFILE Fichier recevant la sortie
  • OUTMBR Options pour membre de sortie
  • CHKDMN Vérifier le domaine
  • CHKPGMMOD Vérifier programmes et modules
  • CHKCMD Vérifier commande
  • CHKSIG Vérifier signature
  • CHKLIB Vérifier bibliothèque
  • SCANFS Recherche systèmes de fichiers
  • SUBTREE Branche du répertoire
  • CHKLIC Vérif microcode sous licence

Astuce : dans une session 5250, tapez CHKOBJITG 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 CHKOBJITG (Vérifier l'intégrité des objets) permet de contrôler les objets appartenant au profil utilisateur indiqué, ceux correspondant au nom de chemin défini ou tous les objets du système, afin de déterminer si certains d'entre eux entraînent des violations d'intégrité. Une violation d'intégrité intervient si :

  • une commande a été trafiquée.
  • un objet comporte une signature numérique incorrecte.
  • un objet comporte un attribut de domaine incorrect pour son type d'objet.
  • un programme ou un module objet a été trafiqué.
  • des attributs de bibliothèque ont été trafiqués.
  • un objet a causé l'échec du scannage d'un système de fichiers.

Si une violation d'intégrité a eu lieu, le nom, la bibliothèque, le type et le propriétaire de l'objet, ainsi que le type de défaillance sont consignés dans un fichier base de données.

Les types de violations d'intégrité possibles sont les suivants :

  • ALTERED - L'objet a été trafiqué.
  • BADSIG - L'objet comporte une signature numérique incorrecte.
  • DMN - Le domaine est incorrect pour le type d'objet.
  • PGMMOD - L'objet exécutable a été trafiqué.
  • BADLIBUPDA - La valeur attribuée à l'attribut de protection de la bibliothèque est incorrecte.
  • SCANFSFAIL - L'objet a été scanné par un programme d'exit relatif au scannage. Lors de la dernière demande de scannage, l'objet a causé l'échec du scannage.

Si une violation est consignée pour un module de microcode sous licence, le nom d'objet est le nom RU à 8 caractères (le nom RU étant le nom de l'unité remplaçable du module du microcode sous licence), le nom de bibliothèque reste vierge et le type d'objet est *LIC. Si une violation de ce type se produit, prenez contact avec votre technicien de maintenance.

Les objets ne comportant pas de signature numérique, mais pouvant être signés, les objets n'ayant pu être vérifiés et ceux dont le format requiert des modifications à utiliser sur cette machine sont également consignés dans le fichier base de données (mais pas les violations d'intégrité).

Les types de violations d'intégrité possibles sont les suivants :

  • NOSIG - L'objet peut être signé mais ne comporte pas de signature numérique.
  • NOTCHECKED - L'objet ne peut pas être contrôlé, Il est en mode de débogage, sauvegardé avec libération de mémoire ou compressé.
  • NOTTRANS - L'objet n'a pas été converti au format en cours ou n'est pas compatible avec la version, l'édition ou le niveau de modification en cours.

Remarque :Les objets compressés, endommagés, sauvegardés avec libération de mémoire ou en mode de débogage peuvent ne pas être contrôlés.

Remarque :Les commandes IBM dupliquées à partir d'une version antérieure à V5R2 seront consignées en tant que violations de type ALTERED. Ces commandes doivent être supprimées et créées à nouveau à l'aide de la commande CRTDUPOBJ (Créer un objet dupliqué) à chaque fois qu'une nouvelle version est chargée.

Restrictions :

  • Pour vérifier l'intégrité des objets, vous devez disposer du droit spécial d'audit (*AUDIT).

Note: La durée d'exécution de la commande CHKOBJITG peut être longue dans les cas suivants :

  • le profil utilisateur indiqué pour le paramètre USRPRF possède de nombreux objets.
  • *ALL est indiqué pour le paramètre USRPRF.
  • *SYSTEM est indiqué pour le paramètre OBJ.
  • de nombreux objets correspondent au masque de nom de chemin indiqué pour le paramètre OBJ.

Paramètres

Mot-clé Description Valeurs possibles Remarques
USRPRF Profil utilisateur, ou Nom générique, nom, *ALL Facultatif, positionnel 1
OBJ Objet Chemin d'accès, *SYSTEM Facultatif
OUTFILE Fichier recevant la sortie Nom d'objet qualifié Facultatif, positionnel 2
Qualificatif 1: Fichier recevant la sortie Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
OUTMBR Options pour membre de sortie Liste d'éléments Facultatif
Élément 1: Membre recevant la sortie Nom, *FIRST
Élément 2: Remplacement ou ajout enregs *REPLACE, *ADD
CHKDMN Vérifier le domaine *YES, *NO Facultatif
CHKPGMMOD Vérifier programmes et modules *YES, *NO Facultatif
CHKCMD Vérifier commande *YES, *NO Facultatif
CHKSIG Vérifier signature *SIGNED, *ALL, *NONE Facultatif
CHKLIB Vérifier bibliothèque *YES, *NO Facultatif
SCANFS Recherche systèmes de fichiers *STATUS, *YES, *NO Facultatif
SUBTREE Branche du répertoire *NONE, *ALL Facultatif
CHKLIC Vérif microcode sous licence *YES, *NO, *ONLY Facultatif

Profil utilisateur (USRPRF)

Indique les profils utilisateur propriétaires des objets à soumettre à une vérification d'intégrité.

Remarque :Une valeur doit être indiquée soit pour le paramètre USRPRF, soit pour le paramètre OBJ. Vous ne pouvez pas indiquer des valeurs pour ces deux paramètres.

*ALL
Les objets appartenant à tous les profils utilisateur du système sont vérifiés.
nom-générique
Indiquez les noms génériques des profils utilisateur auxquels appartiennent les objets à vérifier.

Un nom générique est une chaîne comportant un ou plusieurs caractères suivis d'un astérisque (*), par exemple, ABC*. L'astérisque représente des caractères admis. Un nom générique spécifie tous les objets dont les noms commencent par le préfixe générique sur lesquels l'utilisateur dispose de droits. Si aucun astérisque n'est associé au nom (de préfixe) générique, le système considère qu'il s'agit du nom complet de l'objet.

nom
Indiquez le nom du profil utilisateur propriétaire des objets à vérifier.

Objet (OBJ)

Indique les objets à soumettre à une vérification d'intégrité.

Remarque :Une valeur doit être indiquée soit pour le paramètre USRPRF, soit pour le paramètre OBJ. Vous ne pouvez pas indiquer des valeurs pour ces deux paramètres.

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/.

*SYSTEM
Tous les objets des ASP disponibles doivent être vérifiés.

Remarque :Lorsque *SYSTEM est indiqué, la seule valeur autorisée pour le paramètre CHKSIG est *ALL.

nom-chemin
Indiquez le nom de chemin des objets à vérifier.

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.

Fichier recevant la sortie (OUTFILE)

Indique le fichier de base de données vers lequel la sortie générée par la commande est dirigée. Si ce fichier n'existe pas, la commande en crée un dans la bibliothèque précisée. S'il existe déjà, les droits publics sur le fichier sont les mêmes que le droit de création de la pour la bibliothèque contenant le fichier. Pour afficher ce droit, utilisez la commande DSPLIBD (Afficher une description de bibliothèque).

Qualificatif 1 : Fichier recevant la sortie

nom
Indiquez le nom du fichier de base de données vers lequel la sortie générée de la commande est dirigée.

Qualificateur 2: Biblio

*LIBL
Le fichier est recherché dans la liste des bibliothèques. Si le système ne le trouve pas, il en crée un dans la bibliothèque en cours. S'il n'existe pas de bibliothèque en cours, le fichier est créé dans la bibliothèque QGPL.
*CURLIB
Bibliothèque de l'unité d'exécution en cours utilisée pour localiser le fichier. Si cette bibliothèque n'est pas indiquée, QGPL est utilisée par défaut.
nom
Indiquez le nom de la bibliothèque dans laquelle doit s'effectuer la recherche.

Remarque :Si un fichier est créé, le système de fichiers QASYCHKI de la bibliothèque du système QSYS avec le nom de format QASYCHKI est utilisé comme modèle.

Options pour membre de sortie (OUTMBR)

Indique le nom du membre de fichier base de données dans lequel est envoyée la sortie de la commande.

Elément 1 : Membre recevant la sortie

*FIRST
Le premier membre du fichier reçoit la sortie. Si OUTMBR(*FIRST) est indiqué et que le membre n'existe pas, le système en crée un du nom indiqué à l'invite Fichier recevant la sortie (paramètre OUTFILE). Si le membre existe, vous avez la possibilité d'ajouter de nouveaux enregistrements à la fin du membre existant ou de le mettre à blanc et de lui ajouter les nouveaux enregistrements.
nom
Indiquez le nom du membre de fichier destiné à recevoir la sortie. Si aucun membre de ce nom n'existe, le système le crée.

Elément 2 : Remplacement ou ajout enregs

*REPLACE
Le système met à blanc le membre existant et ajoute les nouveaux enregistrements.
*ADD
Le système ajoute les nouveaux enregistrements à la suite des enregistrements existants.

Vérifier le domaine (CHKDMN)

Indique si l'intégrité du domaine de l'objet doit être vérifiée.

*YES
L'intégrité de domaine des objets doit être vérifiée.

Remarque : Les objets ci-dessous font partie du domaine utilisateur et ne sont pas vérifiés.

  • Bibliothèque QTEMP
  • Tous les objets de type *PGM
  • Tous les objets de type *SQLPKG
  • Tous les objets de type *SRVPGM

Les types d'objets suivants sont admis dans le domaine utilisateur uniquement si la bibliothèque les contenant est indiquée dans la valeur système QALWUSRDMN (ou si QALWUSRDMN a pour valeur *ALL).

  • *USRSPC
  • *USRQ
  • *USRIDX
*NO
L'intégrité de domaine des objets ne doit pas être vérifiée.

Vérifier programmes et modules (CHKPGMMOD)

Indique si l'intégrité des objets programme et module doit être vérifiée.

*YES
L'intégrité des programmes et modules doit être vérifiée.
*NO
L'intégrité des programmes et modules ne doit pas être vérifiée.

Vérifier commande (CHKCMD)

Indique si l'intégrité des commandes doit être vérifiée.

*YES
L'intégrité des commandes doit être vérifiée.
*NO
L'intégrité des commandes ne doit pas être vérifiée.

Vérifier signature (CHKSIG)

Indique si les signatures numériques des objets pouvant être signés doivent être vérifiées.

*SIGNED
Les objets comportant des signatures numériques sont vérifiés. Tout objet comportant une signature incorrecte sera consigné.
*ALL
Tous les objets pouvant comporter une signature numérique sont vérifiés. Tout objet pouvant être signé, mais ne comportant pas de signature sera consigné. Tout objet comportant une signature incorrecte sera consigné.
*NONE
Les signatures numériques ne seront pas vérifiées.

Vérifier bibliothèque (CHKLIB)

Indique si l'intégrité des attributs de bibliothèque doit être vérifiée.

*YES
L'intégrité des attributs de bibliothèque doit être vérifiée.
*NO
L'intégrité des attributs de bibliothèque ne doit pas être vérifiée.

Recherche systèmes de fichiers (SCANFS)

Indique si les objets des systèmes de fichiers intégrés identifiés par la valeur système QSCANFS doivent être scannés ou si un état de scannage existant doit être renvoyé.

Les points d'exit liés au scannage du système de fichiers intégré sont les suivants :

  • QIBM_QP0L_SCAN_OPEN - Programme d'exit d'analyse à l'ouverture du système de fichiers intégré QIBM_QP0L_SCAN_OPEN - Integrated File System Scan on Open Exit Program
  • QIBM_QP0L_SCAN_CLOSE - Programme d'exit d'analyse à la fermeture du système de fichiers intégré QIBM_QP0L_SCAN_CLOSE - Integrated File System Scan on Close Exit Program

Pour plus d'informations sur ces points d'exit, reportez-vous au manuel Ensemble de rubriques API de la catégorie Programmation de l'IBM i Information Center (http://www.ibm.com/systems/i/infocenter/).

*STATUS
Les objets ne seront pas scannés, cependant si l'état d'un objet indique l'échec de la dernière opération de scannage, une violation d'intégrité SCANFSFAIL sera consignée.
*YES
Les objets seront scannés selon les règles décrites dans les programmes d'exit relatifs au scannage. Si un objet cause l'échec de l'opération de scannage, une violation d'intégrité SCANFSFAIL sera consignée.
*NO
Les objets ne seront pas scannés et l'état d'échec du scannage ne sera pas consigné.

Branche du répertoire (SUBTREE)

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

*NONE
Les objets indiqués par le paramètre OBJ sont vérifiés. Si l'objet est un répertoire, il est vérifié, mais son contenu ne l'est pas.
*ALL
Les objets indiqués par le paramètre OBJ sont vérifiés. Si l'objet est un répertoire, 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, le critère de concordance ne s'applique pas à son contenu ni à celui des sous-répertoires associé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.

Vérif microcode sous licence (CHKLIC)

Indique si l'intégrité du microcode sous licence doit être vérifiée.

Remarque :Ce paramètre peut uniquement être indiqué lorsque les valeurs *SYSTEM et *ALL sont respectivement attribuées aux paramètres Objet (OBJ) et Vérifier signature (CHKSIG).

*YES
Les signatures numériques du microcode sous licence sont vérifiées en plus des vérifications réalisées lorsque la valeur *SYSTEM est attribuée au paramètre Objet (OBJ).
*NO
Les signatures numériques du microcode sous licence ne sont pas vérifiées. Les vérifications qui sont réalisées lorsque la valeur *SYSTEM est attribuée au paramètre Objet (OBJ) le sont toujours.
*ONLY
Seules les signatures numériques du microcode sous licence sont vérifiées. Les vérifications qui sont réalisées lorsque la valeur *SYSTEM est attribuée au paramètre Objet (OBJ) ne sont pas réalisées.

Exemples

Exemple 1 : vérification des objets appartenant à un seul profil utilisateur

CHKOBJITG   USRPRF(JOEPGMR)  OUTFILE(SECCHECK)
            OUTMBR(*FIRST *REPLACE)
            CHKDMN(*YES)  CHKPGMMOD(*YES)
            CHKSIG(*YES)  CHKLIB(*YES)

Cette commande vérifie qu'aucun des objets appartenant à l'utilisateur JOEPGMR n'a subi de violation d'intégrité. Les objets dont l'attribut de domaine est incorrect, les objets programmes et modules faussés, les objets dont la signature numérique n'est pas correcte et les bibliothèques dont les attributs ont été faussés entraînent la consignation d'enregistrements de violation d'intégrité dans le fichier base de données SECCHECK. Ce dernier est au préalable vidé de tous ses enregistrements existants.

Exemple 2 : vérification des objets appartenant à plusieurs profils utilisateur

CHKOBJITG   USRPRF(ABC*)  OUTFILE(ABCCHECK)
            OUTMBR(*FIRST *REPLACE)  CHKDMN(*YES)
            CHKPGMMOD(*YES)  CHKSIG(*NONE)  CHKLIB(*YES)

Cette commande vérifie qu'aucun des objets appartenant des profils l'utilisateur commençant par ABC n'a subi de violation d'intégrité. Les objets dont l'attribut de domaine est incorrect, les objets programmes et modules faussés et les bibliothèques dont les attributs ont été faussés entraînent la consignation d'enregistrements de violation d'intégrité dans le fichier base de données ABCCHECK. Ce dernier est au préalable vidé de tous ses enregistrements existants.

Exemple 3 : vérification des objets d'une bibliothèque

CHKOBJITG   OBJ('/QSYS.LIB/LIB2.LIB/ABC*.*)  OUTFILE(SECCHECK2)
            OUTMBR(*FIRST *REPLACE)
            CHKDMN(*YES)  CHKPGMMOD(*YES)
            CHKSIG(*ALL)  CHKLIB(*NO)

Cette commande vérifie qu'aucun objet de la bibliothèque LIB2 dont le nom commence par ABC et quel qu'en soit le type n'a subi de violation d'intégrité. Les objets dont l'attribut de domaine est incorrect, les objets programmes et modules faussés et les objets dont la signature numérique est incorrecte ou absente entraînent la consignation d'enregistrements de violation d'intégrité dans le fichier base de données SECCHECK2. Ce dernier est au préalable vidé de tous ses enregistrements existants.

Exemple 4 : vérification d'un objet dans un répertoire

CHKOBJITG   OBJ('/PartOrder/Forms.jar')  OUTFILE(SECCHECK3)
            OUTMBR(*FIRST *REPLACE)
            CHKDMN(*NO)  CHKPGMMOD(*NO)
            CHKSIG(*ALL)  CHKLIB(*NO)

Cette commande vérifie que le fichier Forms.jar situé dans le répertoire PartOrder n'a pas subi de violation d'intégrité. Si le fichier est associé à une signature numérique incorrecte ou s'il peut être signé mais n'a pas de signature, un enregistrement de violation d'intégrité est consigné dans le fichier base de données SECCHECK3. Ce dernier est au préalable vidé de tous ses enregistrements existants.

Remarque : La validité des signatures des programmes Java éventuellement associés à ce fichier STREAM est également vérifiée.

Exemple 5: Analyse des fichiers

CHKOBJITG   OBJ('/Parts/*')  OUTFILE(SECCHECK4)
            CHKDMN(*NO)  CHKPGMMOD(*NO)  CHKSIG(*NONE)
            CHKLIB(*NO) SCANFS(*YES)

Cette commande scrute tous les fichiers du répertoire Parts pour repérer les éventuelles violations d'intégrité. Si le programme d'exit associé au balayage détecte une situation d'échec, un enregistrement de violation d'intégrité est consigné dans le fichier base de données SECCHECK4.

Exemple 6: Vérification du microcode sous licence

CHKOBJITG   OBJ(*SYSTEM)  OUTFILE(SECCHECK5)
            CHKDMN(*NO)  CHKPGMMOD(*NO)  CHKSIG(*ALL)
            CHKLIB(*NO) SCANFS(*NO) CHKLIC(*ONLY)

Cette commande vérifie les violations d'intégrité du microcode sous licence. Si l'un des microcodes sous licence est associé à une signature numérique non valide ou qu'il n'est associé à aucune signature numérique, un enregistrement de violation d'intégrité est consigné dans le fichier base de données SECCHECK5.

Messages d'erreur

Messages *ESCAPE

CPFA0AA
Une erreur s'est produite pendant l'allocation d'espace.
CPFA0A9
Objet introuvable. L'objet est &1.
CPFA093
Aucun nom ne correspond au masque indiqué.
CPF22D9
Il n'existe pas de profil utilisateur du nom indiqué.
CPF22F0
Erreurs imprévues lors du traitement.
CPF2204
Profil utilisateur &1 non trouvé.
CPF2213
Impossible d'allouer le profil utilisateur &1.
CPF222E
Le droit spécial &1 est requis.
CPF222F
Commande non exécutée.
CPF4AAC
Profil utilisateur &2 non traité.
CPF4ABD
Microcode sous licence non vérifié.
CPF9860
Erreur lors du traitement du fichier de sortie.

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