Aller au contenu
Profils et droits · 2 / 2

Classes et droits spéciaux, qui peut faire quoi

La classe d'un utilisateur règle ses menus et ses droits par défaut ; les droits spéciaux lui donnent des pouvoirs sur tout le système. Voici les cinq classes, les huit droits spéciaux, leurs risques, et comment un groupe les transmet, vérifiés sur un IBM i 7.5.

5classes d'utilisateurs
8droits spéciaux
40niveau de sécurité (QSECURITY) de notre système
0droit spécial pour un *USER en niveau 40

En une phrase

La classe d'utilisateur (USRCLS) dit quel genre d'utilisateur est un profil et lui donne des droits par défaut ; les droits spéciaux (SPCAUT) l'autorisent à des actions sur tout le système, au-delà des droits objet par objet : tout lire, gérer les profils, piloter les travaux, sauvegarder…

Les cinq classes d'utilisateurs

ClasseNomPour qui
*SECOFRResponsable de la sécuritéLe profil d'administration complet, comme QSECOFR.
*SECADMAdministrateur de la sécuritéGère les profils utilisateurs.
*PGMRProgrammeurDéveloppe les programmes.
*SYSOPROpérateur systèmePilote l'exploitation au quotidien.
*USERUtilisateurTravaille dans les applications. La valeur par défaut.

La classe a deux effets. Elle choisit les options affichées dans les menus d'IBM i, ce qui ne limite pas les commandes elles-mêmes (c'est le rôle de LMTCPB). Et, si l'on laisse les droits spéciaux à leur valeur par défaut SPCAUT(*USRCLS), elle décide des droits spéciaux que reçoit le profil, selon le niveau de sécurité du système. IBM recommande la classe *USER pour tous ceux qui n'ont pas besoin des fonctions système.

Les droits donnés par chaque classe

Le tableau d'IBM : « tous » signifie à tous les niveaux de sécurité, « 10, 20 » aux niveaux 10 et 20 seulement. Au niveau 30 et au-delà, seules les cases « tous » restent :

Droit spécial*SECOFR*SECADM*PGMR*SYSOPR*USER
*ALLOBJ tous10, 2010, 2010, 2010, 20
*SECADM toustous
*JOBCTL tous10, 2010, 20tous
*SPLCTL tous
*SAVSYS tous10, 2010, 20tous10, 20
*SERVICE tous
*AUDIT tous
*IOSYSCFG tous

Nous l'avons vérifié. Sur notre IBM i 7.5, en QSECURITY 40, nous avons créé un profil de chaque classe avec SPCAUT(*USRCLS), puis relu ce que le système y a écrit par QSYS2.USER_INFO :

ProfilClasseDroits spéciaux obtenus
JOBISECOFR*SECOFR *ALLOBJ *SECADM *JOBCTL *SPLCTL *SAVSYS *SERVICE *AUDIT *IOSYSCFG
JOBISECADM*SECADM *SECADM
JOBIPGMR*PGMR aucun
JOBISYSOPR*SYSOPR *JOBCTL *SAVSYS
JOBIUSRCLS*USER aucun

Le résultat suit exactement le tableau : en niveau 40, un programmeur (*PGMR) n'a aucun droit spécial, alors qu'en niveau 10 ou 20 il aurait eu *ALLOBJ. Le système écrit ces droits dans le profil comme s'ils avaient été saisis : plus tard, on ne voit pas s'ils viennent de la classe ou d'un choix explicite. Et *USRCLS ne se combine pas : dès qu'on indique un droit spécial, la classe n'en donne plus aucun.

Écran 5250 Profil utilisateur JOBISECOFR : droits spéciaux *ALLOBJ, *AUDIT, *IOSYSCFG, *JOBCTL, *SAVSYS, *SECADM, *SERVICE, *SPLCTL
DSPUSRPRF JOBISECOFR : la classe *SECOFR reçoit les huit droits spéciaux.

Depuis IBM i 7.5, la valeur système QSECURITY ne peut plus être mise à 20 ; un système déjà en niveau 20 peut y rester, mais n'y revient pas s'il en change.

Les huit droits spéciaux

Chacun donne un pouvoir sur tout le système, et chacun a son risque. Le résumé d'IBM :

DroitIl permetLe risque
*ALLOBJTous les objets Accéder à tout objet du système, même avec un droit *EXCLUDE : lire, modifier, supprimer, donner des droits. Il ne donne pas directement ce qui demande un autre droit spécial (créer un profil exige *SECADM), mais permet de soumettre un travail sous un profil qui l'a : c'est presque tout donner.
*SECADMAdministrateur sécurité Créer, modifier et supprimer des profils utilisateurs ; gérer l'annuaire et les droits sur les documents. Seul un profil qui a *SECADM et *ALLOBJ peut le donner à un autre.
*JOBCTLContrôle des travaux Afficher, suspendre, modifier et arrêter les travaux des autres ; arrêter des sous-systèmes ; lancer un IPL ; gérer les files OPRCTL(*YES) et leurs spools. Mal utilisé, il gêne des travaux ou tout le système ; il ouvre aussi les spools confidentiels des files OPRCTL(*YES).
*SPLCTLContrôle des spools Toutes les opérations sur tous les spools de toutes les files de sortie, et sur toutes les files d'attente de travaux, quels que soient leurs droits. Aucun spool confidentiel n'est protégé de lui.
*SAVSYSSauvegarde système Sauvegarder, restaurer et libérer l'espace de tous les objets, sans droit d'existence sur eux. Sauvegarder un objet pour le restaurer ailleurs ou lire la bande ; libérer l'espace d'un objet, ce qui efface ses données.
*SERVICEOutils de service Lancer les outils de service (STRSST), déboguer un programme avec un simple droit *USE, faire des traces. Afficher des données confidentielles par les fonctions de service (les modifier demande en plus *ALLOBJ).
*AUDITAudit Voir et changer le réglage de l'audit : valeurs système d'audit, audit des objets et des utilisateurs. Arrêter l'audit ou en exclure des actions. Seul un profil qui a *ALLOBJ, *SECADM et *AUDIT peut le donner.
*IOSYSCFGConfiguration système Changer la configuration : communications, serveurs TCP/IP. La plupart des commandes de configuration l'exigent. IBM ne détaille pas de risque, mais les communications et les serveurs TCP/IP du système sont entre ses mains.

Quelques précisions utiles au quotidien :

  • On peut changer la priorité en file et en impression de ses propres travaux sans *JOBCTL, dans la limite de son PTYLMT ; changer leur priorité d'exécution demande *JOBCTL.
  • Les traces (STRCMNTRC, TRCCNN, STRTRC…) peuvent être ouvertes sans *SERVICE, par la fonction QIBM_SERVICE_TRACE : CHGFCNUSG FCNID(QIBM_SERVICE_TRACE) USER(…) USAGE(*ALLOWED).
  • Un programme créé par un profil *ALLOBJ avec USRPRF(*OWNER) adopte ses droits : quiconque l'exécute dispose alors de *ALLOBJ pendant l'appel.

Les droits spéciaux passent par les groupes

Un membre dispose de ses propres droits spéciaux et de ceux de tous ses groupes, qui se cumulent. Notre système en donne un exemple : le profil de test IBMITEST est de classe *USER, sans aucun droit spécial, mais il a pour groupe QPGMR, le profil programmeur livré par IBM :

Les droits spéciaux hérités d'un groupe Le profil IBMITEST, de classe *USER, n'a aucun droit spécial ; son groupe QPGMR a *JOBCTL et *SAVSYS ; IBMITEST dispose donc de *JOBCTL et *SAVSYS. IBMITEST*USER, aucun droit spécial Groupe QPGMR*JOBCTL *SAVSYS Droits d'IBMITEST*JOBCTL *SAVSYS, hérités du groupe
Relevé par QSYS2.USER_INFO_BASIC et QSYS2.GROUP_PROFILE_ENTRIES sur notre IBM i 7.5.

Avec *JOBCTL, IBMITEST peut donc arrêter les travaux des autres, alors que son profil affiche « Droits spéciaux : *NONE ». Pour connaître les vrais pouvoirs d'un utilisateur, il faut toujours regarder ses groupes. Les profils livrés par IBM ont leurs propres droits, qui ne suivent pas forcément le tableau des classes. Sur notre système :

Profil IBMClasseDroits spéciaux sur notre systèmeTexte
QSECOFR*SECOFR *ALLOBJ *SECADM *JOBCTL *SPLCTL *SAVSYS *SERVICE *AUDIT *IOSYSCFG Responsable de la sécurité
QSYSOPR*SYSOPR *JOBCTL *SAVSYS Opérateur système
QPGMR*PGMR *JOBCTL *SAVSYS Programmeur et utilisateur traitement par lots
QUSER*USER aucun Utilisateur poste de travail

QPGMR et QSYSOPR ont *JOBCTL et *SAVSYS même en niveau 40. Faire d'eux le groupe de nombreux utilisateurs leur transmet ces deux droits.

Qui peut donner un droit spécial ?

  • Pour donner un droit spécial à un profil, il faut l'avoir soi-même.
  • *SECADM ne peut être donné que par un profil qui a *SECADM et *ALLOBJ.
  • *AUDIT ne peut être donné que par un profil qui a *ALLOBJ, *SECADM et *AUDIT.

On donne ou retire des droits par CHGUSRPRF USRPRF(…) SPCAUT(…), en indiquant la liste complète des droits voulus.

Contrôler qui a quoi

IBM recommande de peser chaque droit spécial, de tenir la liste de qui en a, et de la revoir régulièrement. En SQL, la liste des profils actifs qui ont *ALLOBJ :

SELECT AUTHORIZATION_NAME, USER_CLASS_NAME, SPECIAL_AUTHORITIES
  FROM QSYS2.USER_INFO_BASIC
 WHERE SPECIAL_AUTHORITIES LIKE '%*ALLOBJ%'
   AND STATUS = '*ENABLED'

Et les droits que chacun reçoit de ses groupes, qui n'apparaissent pas dans son propre profil :

SELECT G.USER_PROFILE_NAME, G.GROUP_PROFILE_NAME, P.SPECIAL_AUTHORITIES
  FROM QSYS2.GROUP_PROFILE_ENTRIES G
  JOIN QSYS2.USER_INFO_BASIC P
    ON P.AUTHORIZATION_NAME = G.GROUP_PROFILE_NAME
 WHERE P.SPECIAL_AUTHORITIES <> ''

Ces deux requêtes ont été exécutées sur notre IBM i 7.5. La seconde n'y renvoie qu'une ligne : IBMITEST et son groupe QPGMR.

À retenir

  • Cinq classes ; *USER par défaut, et c'est le bon choix pour la plupart.
  • En niveau 40, seules *SECOFR, *SECADM et *SYSOPR reçoivent des droits spéciaux par leur classe.
  • Huit droits spéciaux ; *ALLOBJ revient presque à tout donner.
  • Les droits des groupes s'ajoutent à ceux du membre : vérifiez les groupes.

Sources

Les exemples ont été créés et relevés sur un IBM i 7.5 (voir la méthode). Les définitions et les règles viennent de ces sources, consultées le 15 octobre 2026 :

  1. IBM i 7.5 Security : Security reference, IBM (PDF, 1 060 pages). Rôles du profil ; nom (10 caractères) et mot de passe (128 caractères en QPWDLVL 2 à 4) ; statut ; bibliothèque en cours, programme et menu initiaux, LMTCPB ; JOBD ; groupes (16 au plus, droits spéciaux cumulés) ; valeurs par défaut de CRTUSRPRF (table 151 : PASSWORD *NONE, AUT *EXCLUDE, PTYLMT 3) ; classes et droits spéciaux par niveau de sécurité (table 54) ; rôle et risques de chaque droit spécial ; ouverture d'une session et démarrage d'un batch ; QSECURITY 20 abandonné en 7.5 ; droits sur les objets (tables 116 et 117), sécurité par bibliothèque, listes d'autorisation, CRTAUT et QCRTAUT, propriété, droits adoptés et leurs risques, ordre de vérification des droits, recommandations générales.
  2. L'aide en ligne des commandes citées, livrée avec IBM i 7.5 et reprise en français dans les fiches des commandes CL de ce site. Paramètres de CRTUSRPRF, DLTUSRPRF, SBMJOB, PRTPUBAUT, PRTADPOBJ et PRTPVTAUT.

Questions fréquentes

Quelles sont les classes d'utilisateurs IBM i ?

Cinq : *SECOFR (responsable de la sécurité), *SECADM (administrateur de la sécurité), *PGMR (programmeur), *SYSOPR (opérateur) et *USER (utilisateur, la valeur par défaut). La classe règle les options affichées dans les menus et, avec SPCAUT(*USRCLS), les droits spéciaux donnés par défaut.

Quels sont les droits spéciaux ?

Huit : *ALLOBJ (accès à tous les objets), *SECADM (gérer les profils), *JOBCTL (gérer les travaux), *SPLCTL (tous les spools), *SAVSYS (sauvegarder et restaurer tout), *SERVICE (outils de service), *AUDIT (régler l'audit) et *IOSYSCFG (configurer le système et TCP/IP).

Un utilisateur hérite-t-il des droits spéciaux de son groupe ?

Oui. Les droits spéciaux d'un profil de groupe sont disponibles pour ses membres, et ils se cumulent sur tous ses groupes. Un profil *USER sans droit spécial, membre de QPGMR, dispose donc de *JOBCTL et *SAVSYS.

Un profil *ALLOBJ peut-il tout faire ?

Il peut lire, modifier et supprimer n'importe quel objet, mais pas directement ce qui demande un autre droit spécial : il ne peut pas créer de profil sans *SECADM. IBM précise toutefois qu'il peut soumettre un travail sous un profil qui a ce droit : donner *ALLOBJ revient à donner presque tout.

Comment lister les profils qui ont des droits spéciaux ?

En SQL : SELECT AUTHORIZATION_NAME, USER_CLASS_NAME, SPECIAL_AUTHORITIES FROM QSYS2.USER_INFO_BASIC WHERE SPECIAL_AUTHORITIES <> ''. Ajoutez les droits hérités des groupes avec QSYS2.GROUP_PROFILE_ENTRIES.