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.
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
| Classe | Nom | Pour qui |
|---|---|---|
*SECOFR | Responsable de la sécurité | Le profil d'administration complet, comme QSECOFR. |
*SECADM | Administrateur de la sécurité | Gère les profils utilisateurs. |
*PGMR | Programmeur | Développe les programmes. |
*SYSOPR | Opérateur système | Pilote l'exploitation au quotidien. |
*USER | Utilisateur | Travaille 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 |
tous | 10, 20 | 10, 20 | 10, 20 | 10, 20 |
*SECADM |
tous | tous | |||
*JOBCTL |
tous | 10, 20 | 10, 20 | tous | |
*SPLCTL |
tous | ||||
*SAVSYS |
tous | 10, 20 | 10, 20 | tous | 10, 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 :
| Profil | Classe | Droits 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.

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 :
| Droit | Il permet | Le 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 sonPTYLMT; changer leur priorité d'exécution demande*JOBCTL. - Les traces (STRCMNTRC, TRCCNN, STRTRC…) peuvent être ouvertes sans
*SERVICE, par la fonctionQIBM_SERVICE_TRACE:CHGFCNUSG FCNID(QIBM_SERVICE_TRACE) USER(…) USAGE(*ALLOWED). - Un programme créé par un profil
*ALLOBJavecUSRPRF(*OWNER)adopte ses droits : quiconque l'exécute dispose alors de*ALLOBJpendant 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 :
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 IBM | Classe | Droits spéciaux sur notre système | Texte |
|---|---|---|---|
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.
*SECADMne peut être donné que par un profil qui a*SECADMet*ALLOBJ.*AUDITne peut être donné que par un profil qui a*ALLOBJ,*SECADMet*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 ;
*USERpar défaut, et c'est le bon choix pour la plupart. - En niveau 40, seules
*SECOFR,*SECADMet*SYSOPRreçoivent des droits spéciaux par leur classe. - Huit droits spéciaux ;
*ALLOBJrevient 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 :
- 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.
- 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.