Les profils utilisateurs IBM i, créer et configurer
Sur IBM i, chaque utilisateur a un profil : son identité, son mot de passe, ses droits et le réglage de ses sessions. Voici ce que contient un profil, comment le créer avec CRTUSRPRF, comment lui attacher une description de travail et ce qu'apportent les groupes, démontré sur un IBM i 7.5.
En une phrase
Un profil utilisateur (*USRPRF) est l'objet qui
représente un utilisateur : il porte son nom de connexion et son
mot de passe, ses droits spéciaux, le réglage
de ses sessions (bibliothèque, menu, description de travail) et
la liste de ce qu'il possède. Sans profil, pas de session ; et chaque
travail tourne sous un profil.
C'est quoi, un profil ?
Chaque personne qui utilise un IBM i a un profil, et il doit exister avant la première ouverture
de session. Comme tout sur IBM i, c'est un objet, de type
*USRPRF, rangé dans la bibliothèque QSYS. IBM lui donne quatre rôles :
- Sécurité : il contrôle la connexion (mot de passe, état), ce que l'utilisateur peut faire ensuite (droits spéciaux) et comment ses actions sont auditées.
- Personnalisation : il adapte le système à l'utilisateur, avec sa bibliothèque, son menu, sa description de travail, sa file de sortie.
- Gestion : il garde la liste des objets que l'utilisateur possède et de tous ses droits privés sur des objets.
- Identification : son nom apparaît dans le nom des travaux
(
011954/SAKADM/EDITION) et sur les spools.
Un profil de groupe est un profil comme les autres, qui partage ses droits avec ses membres. Nous y revenons plus bas.
Créer un profil : CRTUSRPRF
On crée un profil par CRTUSRPRF, ce qui demande le droit spécial
*SECADM. Voici l'invite de la commande sur notre IBM i 7.5 : les paramètres de base,
puis, avec F10, les autres.

CRTUSRPRF : le mot de passe vaut *NONE par défaut.
*USRCLS), règles de mot de passe, priorité maximale.
QDFTJOBD), groupe, file de messages.Les paramètres qui comptent, avec leur valeur par défaut sur l'écran de création (table des valeurs par défaut d'IBM pour la version 7.5) :
| Paramètre | Par défaut | À quoi il sert |
|---|---|---|
USRPRFProfil utilisateur |
— |
Le nom de connexion : 10 caractères au plus, lettres, chiffres et # $ _ @, sans commencer par un chiffre. |
PASSWORDMot de passe |
*NONE |
Sans mot de passe, pas d'ouverture de session. *USRPRF (le nom du profil) existe encore, IBM la déconseille. |
PWDEXPForcer péremption |
*NO |
*YES oblige à choisir son propre mot de passe à la prochaine connexion. |
STATUSÉtat |
*ENABLED |
*DISABLED interdit l'ouverture de session sans supprimer le profil. |
USRCLSClasse d'utilisateur |
*USER |
Règle les menus et les droits spéciaux par défaut (page suivante). |
CURLIBBibliothèque en cours |
*CRTDFT |
Là où vont les objets créés sans bibliothèque. *CRTDFT : QGPL. |
INLPGMProgramme initial |
*NONE |
Appelé à l'ouverture de session, avant le menu. |
INLMNUMenu initial |
MAIN |
Le menu affiché ensuite. *SIGNOFF : la session se ferme à la fin du programme initial. |
LMTCPBPossibilités restreintes |
*NO |
Limite la ligne de commande et ce que l'utilisateur peut changer à l'ouverture. |
SPCAUTDroits spéciaux |
*USRCLS |
Les droits donnés selon la classe et le niveau de sécurité, ou une liste explicite. |
JOBDDescription de travail |
QDFTJOBD |
Les attributs des travaux du profil, dont la liste de bibliothèques. |
GRPPRFProfil de groupe |
*NONE |
Le groupe principal ; SUPGRPPRF en ajoute jusqu'à 15. |
MSGQFile attente messages |
*USRPRF |
Créée dans QUSRSYS au nom du profil si elle n'existe pas. |
OUTQFile d'attente en sortie |
*WRKSTN |
Où vont les impressions : par défaut, celle de l'écran. |
PTYLMTPriorité maxi en soumission |
3 |
La limite des priorités (file et impression) que l'utilisateur peut donner à ses travaux. |
AUTDroits |
*EXCLUDE |
Le droit public sur le profil lui-même : un utilisateur ordinaire ne peut pas s'en servir, par exemple pour soumettre un travail sous son nom. |
Le mot de passe
Depuis IBM i 7.5, un profil créé sans préciser de mot de passe reçoit *NONE : il ne peut
pas ouvrir de session tant qu'on ne lui en donne pas un. Un profil sans mot de passe reste utile :
on peut soumettre un travail sous son nom si l'on a le droit *USE sur lui, c'est ce
que fait notre démonstration plus bas.
La longueur et la casse dépendent de la valeur système QPWDLVL : 10 caractères
au plus en niveau 0 ou 1, jusqu'à 128 caractères, sensibles à la casse, en niveau 2, 3 ou 4 (notre
système est en niveau 3). Le mot de passe est stocké chiffré, sans retour possible : quand un
utilisateur l'oublie, l'administrateur en attribue un provisoire et le déclare périmé
(CHGUSRPRF … PASSWORD(…) PWDEXP(*YES)), et l'utilisateur en choisit un nouveau à la
connexion suivante.
L'état
Un profil *DISABLED ne peut plus ouvrir de session, mais il existe toujours, avec ses
objets et ses droits. C'est la bonne réponse à un départ ou une longue absence. Le système désactive
aussi un profil après trop d'essais de mot de passe ratés, selon les valeurs système
QMAXSIGN (3 sur notre système) et QMAXSGNACN. Seul QSECOFR
échappe à la règle : il peut toujours se connecter à la console, même désactivé.
Notre profil de démonstration
Nous avons créé l'utilisateur JOBIUSER, sa bibliothèque JOBIPRF et son groupe JOBIGRP :
CRTUSRPRF USRPRF(JOBIUSER) PASSWORD(*NONE) USRCLS(*USER) +
CURLIB(JOBIPRF) INLMNU(MAIN) LMTCPB(*PARTIAL) +
JOBD(JOBIPRF/COMPTAJOBD) GRPPRF(JOBIGRP) +
TEXT('Utilisateur de démonstration job-i')
WRKUSRPRF les liste, et DSPUSRPRF affiche le profil en détail :

WRKUSRPRF USRPRF(JOBI*) : nos profils de démonstration.
DSPUSRPRF JOBIUSER, page 1 : état, mot de passe *NONE, classe, créateur.
JOBIGRP, bibliothèque en cours JOBIPRF.
JOBIPRF/COMPTAJOBD.
QUSRSYS/JOBIUSER, créée automatiquement, et la file de sortie de l'écran.Ce que le profil règle à l'ouverture de session
Quand l'utilisateur tape son nom et son mot de passe, le système suit un ordre précis, décrit par IBM. Chaque objet cité par le profil doit exister et être accessible, sinon la session ne s'ouvre pas et un message s'affiche en bas de l'écran d'ouverture :
- Bibliothèque en cours (
CURLIB) : elle s'ajoute d'elle-même à la liste de bibliothèques ; inutile de la répéter dans la JOBD. C'est là que vont les objets créés sans bibliothèque. - Programme initial (
INLPGM) : il s'exécute avant le menu, pour préparer la session (liste de bibliothèques, fichiers) ou enfermer l'utilisateur dans une application. On ne peut pas lui passer de paramètres. - Menu initial (
INLMNU) :MAINpar défaut. Avec*SIGNOFF, la session se ferme dès que le programme initial se termine.
Restreindre la ligne de commande : LMTCPB
Le paramètre Possibilités restreintes empêche un utilisateur de « faire des essais » sur le système :
| L'utilisateur peut… | *YES | *PARTIAL | *NO |
|---|---|---|---|
| Changer le programme initial | Non | Non | Oui |
| Changer le menu initial | Non | Oui | Oui |
| Changer la bibliothèque en cours | Non | Non | Oui |
| Changer le programme de la touche Attention | Non | Non | Oui |
| Saisir des commandes | Quelques-unes | Oui | Oui |
Avec *YES, seules les commandes marquées ALWLMTUSR(*YES) passent : IBM
livre ainsi SIGNOFF, SNDMSG, DSPMSG, DSPJOB, DSPJOBLOG, STRPCO et WRKMSG. La restriction vaut pour
la ligne de commande, FTP, REXEC et l'API QCAPCMD, pas pour les commandes qu'un programme exécute
en réponse à une option de menu.
Attacher une description de travail à un profil
Le paramètre JOBD du profil désigne la description de
travail de ses travaux. Par défaut, c'est QGPL/QDFTJOBD, la même pour tout le
monde. IBM présente la description de travail comme un bon moyen de contrôler l'accès aux
bibliothèques : une JOBD propre à un utilisateur lui donne sa liste de bibliothèques, plutôt que la
valeur système QUSRLIBL qui vaut pour tous. Notre JOBD de démonstration sert ainsi
les utilisateurs d'une même application.
CRTJOBD JOBD(JOBIPRF/COMPTAJOBD) JOBQ(QGPL/QBATCH) +
INLLIBL(JOBIPRF QGPL QTEMP) +
TEXT('JOBD des utilisateurs de la compta (démo)')
GRTOBJAUT OBJ(JOBIPRF/COMPTAJOBD) OBJTYPE(*JOBD) USER(*PUBLIC) AUT(*USE)
/* À la création du profil : CRTUSRPRF … JOBD(JOBIPRF/COMPTAJOBD) */
/* Pour un profil existant : CHGUSRPRF USRPRF(…) JOBD(JOBIPRF/COMPTAJOBD) */
L'utilisateur doit avoir le droit *USE sur la JOBD, sinon il ne peut pas ouvrir de
session ; celui qui crée ou modifie le profil aussi.
En interactif : le poste écran en *USRPRF
À l'ouverture de session, c'est le poste écran du sous-système qui dit quelle JOBD prendre. Celui de
QINTER indique *USRPRF : la JOBD du profil.

*ALL de QINTER : description de travail *USRPRF.En batch : JOBD(*USRPRF), et deux pièges
Pour un travail soumis, SBMJOB JOBD(*USRPRF) (la valeur par défaut) prend la JOBD du
profil sous lequel le travail tourne. Nous avons soumis trois travaux sous
JOBIUSER, qui impriment chacun leur liste de bibliothèques avec DSPLIBL :
1. SBMJOB … USER(JOBIUSER) JOBD(*USRPRF) : la JOBD est bien celle de
JOBIUSER, et pourtant JOBIPRF n'apparaît pas.
Unité
Biblio Type ASP Texte descriptif
QSYS SYS Bibliothèque système
QSYS2 SYS Bibliothèque système pour CPI
QHLPSYS SYS
QUSRSYS SYS System Library for Users
QGPL USR General Purpose Library
QTEMP USR
SBMJOB prend par défaut la liste de bibliothèques du travail qui soumet
(INLLIBL(*CURRENT)), pas celle de la JOBD : c'est le piège déjà vu sur la
page JOBQ et JOBD.
2. Avec INLLIBL(*JOBD), la liste de la JOBD arrive :
Unité
Biblio Type ASP Texte descriptif
QSYS SYS Bibliothèque système
QSYS2 SYS Bibliothèque système pour CPI
QHLPSYS SYS
QUSRSYS SYS System Library for Users
JOBIPRF USR Démonstration profils utilisateurs
QGPL USR General Purpose Library
QTEMP USR
Mais la bibliothèque en cours du profil, elle, manque toujours (aucune ligne CUR) :
SBMJOB prend aussi CURLIB(*CURRENT), celle du travail qui soumet.
3. Avec INLLIBL(*JOBD) CURLIB(*USRPRF), le travail a enfin
l'environnement d'une session de JOBIUSER :
Unité
Biblio Type ASP Texte descriptif
QSYS SYS Bibliothèque système
QSYS2 SYS Bibliothèque système pour CPI
QHLPSYS SYS
QUSRSYS SYS System Library for Users
JOBIPRF CUR Démonstration profils utilisateurs
JOBIPRF USR Démonstration profils utilisateurs
QGPL USR General Purpose Library
QTEMP USR
JOBIPRF y figure deux fois, comme bibliothèque en cours (CUR) et dans la partie
utilisateur (USR), parce que notre JOBD la répète. C'est la recommandation d'IBM
illustrée : la bibliothèque en cours s'ajoute toute seule, ne la mettez pas aussi dans la liste de
la JOBD.
Les profils de groupe
Un profil de groupe sert à donner les mêmes droits à plusieurs utilisateurs : on accorde un droit au groupe, et tous ses membres en profitent. On le crée comme un profil ordinaire, de préférence sans mot de passe pour que personne ne s'y connecte. Il devient un groupe dès qu'on lui ajoute un premier membre : le système le marque alors comme groupe et lui attribue un numéro de groupe (gid).
GRPPRF: le groupe principal.SUPGRPPRFen ajoute jusqu'à 15 autres : un utilisateur appartient donc à 16 groupes au plus.OWNER: qui possède les objets que l'utilisateur crée, lui-même (*USRPRF) ou son groupe (*GRPPRF). Avec*GRPPRF, tous les membres peuvent modifier et supprimer ces objets.- Les droits spéciaux du groupe s'ajoutent à ceux du membre : c'est l'objet de la page suivante.
- Un changement de groupe vaut à la prochaine ouverture de session.
IBM conseille de nommer les groupes avec un préfixe commun (GRP, DPT…) pour les reconnaître. Notre
groupe JOBIGRP, créé par CRTUSRPRF USRPRF(JOBIGRP) PASSWORD(*NONE), est devenu groupe
quand JOBIUSER l'a pris comme GRPPRF.
Désactiver ou supprimer un profil
Pour couper l'accès, CHGUSRPRF USRPRF(…) STATUS(*DISABLED) suffit et se défait d'une
commande. Supprimer est plus délicat, parce que le profil possède des objets :
DLTUSRPRF refuse par défaut (OWNOBJOPT(*NODLT)) tant qu'il en reste.
Il faut les transférer avant par CHGOBJOWN, ou dire à la commande de les
supprimer (OWNOBJOPT(*DLT)) ou de les donner à un autre profil
(OWNOBJOPT(*CHGOWN nouveau-profil)). Les droits privés du profil disparaissent avec
lui.
Les commandes des profils
| CRTUSRPRF | Créer un profil. |
|---|---|
| CHGUSRPRF | Le modifier : mot de passe, état, JOBD, groupe… |
| DSPUSRPRF | L'afficher, avec ses objets possédés et ses droits. |
| WRKUSRPRF | Lister les profils et agir dessus. |
| DLTUSRPRF | Le supprimer, en disant quoi faire de ses objets. |
| CHGPWD | Changer son propre mot de passe. |
| CHGPRF | Changer quelques attributs de son propre profil. |
| RTVUSRPRF | Lire les attributs d'un profil dans un programme CL. |
| ANZDFTPWD | Repérer les profils dont le mot de passe est égal au nom. |
| CHGOBJOWN | Changer le propriétaire d'un objet. |
Et en SQL :
| QSYS2.USER_INFO | Tous les attributs de chaque profil. |
|---|---|
| QSYS2.USER_INFO_BASIC | Les attributs courants, beaucoup plus vite. |
| QSYS2.GROUP_PROFILE_ENTRIES | Qui appartient à quel groupe. |
| QSYS2.OBJECT_OWNERSHIP | Les objets possédés par un profil. |
Toutes les commandes de la démonstration
/* Bibliothèque et description de travail de l'application */
CRTLIB LIB(JOBIPRF) TEXT('Démonstration profils utilisateurs')
GRTOBJAUT OBJ(QSYS/JOBIPRF) OBJTYPE(*LIB) USER(*PUBLIC) AUT(*USE)
CRTJOBD JOBD(JOBIPRF/COMPTAJOBD) JOBQ(QGPL/QBATCH) +
INLLIBL(JOBIPRF QGPL QTEMP) +
TEXT('JOBD des utilisateurs de la compta (démo)')
GRTOBJAUT OBJ(JOBIPRF/COMPTAJOBD) OBJTYPE(*JOBD) USER(*PUBLIC) AUT(*USE)
/* Un profil de groupe : un profil comme les autres, sans mot de passe */
CRTUSRPRF USRPRF(JOBIGRP) PASSWORD(*NONE) USRCLS(*USER) SPCAUT(*NONE) +
TEXT('Groupe de démonstration job-i')
/* L'utilisateur : classe, bibliothèque en cours, menu, JOBD, groupe */
CRTUSRPRF USRPRF(JOBIUSER) PASSWORD(*NONE) USRCLS(*USER) +
CURLIB(JOBIPRF) INLMNU(MAIN) LMTCPB(*PARTIAL) +
JOBD(JOBIPRF/COMPTAJOBD) GRPPRF(JOBIGRP) +
TEXT('Utilisateur de démonstration job-i')
/* Un profil par classe, droits spéciaux laissés à *USRCLS */
CRTUSRPRF USRPRF(JOBIUSRCLS) PASSWORD(*NONE) STATUS(*DISABLED) +
USRCLS(*USER) TEXT('Démo classe *USER')
CRTUSRPRF USRPRF(JOBIPGMR) PASSWORD(*NONE) STATUS(*DISABLED) +
USRCLS(*PGMR) TEXT('Démo classe *PGMR')
CRTUSRPRF USRPRF(JOBISYSOPR) PASSWORD(*NONE) STATUS(*DISABLED) +
USRCLS(*SYSOPR) TEXT('Démo classe *SYSOPR')
CRTUSRPRF USRPRF(JOBISECADM) PASSWORD(*NONE) STATUS(*DISABLED) +
USRCLS(*SECADM) TEXT('Démo classe *SECADM')
CRTUSRPRF USRPRF(JOBISECOFR) PASSWORD(*NONE) STATUS(*DISABLED) +
USRCLS(*SECOFR) TEXT('Démo classe *SECOFR')
/* Trois travaux soumis sous JOBIUSER, qui impriment leur liste de */
/* bibliothèques */
SBMJOB CMD(DSPLIBL OUTPUT(*PRINT)) JOB(LIBLCUR) USER(JOBIUSER) +
JOBD(*USRPRF) OUTQ(JOBITRV/DEMOOUTQ)
SBMJOB CMD(DSPLIBL OUTPUT(*PRINT)) JOB(LIBLJOBD) USER(JOBIUSER) +
JOBD(*USRPRF) INLLIBL(*JOBD) OUTQ(JOBITRV/DEMOOUTQ)
SBMJOB CMD(DSPLIBL OUTPUT(*PRINT)) JOB(LIBLPRF) USER(JOBIUSER) +
JOBD(*USRPRF) INLLIBL(*JOBD) CURLIB(*USRPRF) +
OUTQ(JOBITRV/DEMOOUTQ)
À retenir
- Un profil, c'est l'identité, le mot de passe, les droits et le réglage des sessions d'un utilisateur.
- Depuis 7.5, un profil créé sans mot de passe ne peut pas se connecter.
- La JOBD du profil donne sa liste de bibliothèques ; en batch, demandez
INLLIBL(*JOBD) CURLIB(*USRPRF). - Désactivez plutôt que supprimer ; un profil qui possède des objets ne se supprime pas tel quel.
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.
- IBM i 7.4 Security : Security reference, IBM (PDF). Table 151 de la version 7.4 : le mot de passe par défaut de CRTUSRPRF y vaut encore *USRPRF ; il passe à *NONE en 7.5.
- 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
Qu'est-ce qu'un profil utilisateur sur IBM i ?
C'est l'objet (*USRPRF) qui représente un utilisateur : son nom de connexion, son mot de passe, ses droits spéciaux, ses réglages de session (bibliothèque en cours, menu, description de travail) et la liste des objets qu'il possède et de ses droits privés. Il faut un profil pour ouvrir une session, et chaque travail tourne sous un profil.
Comment créer un profil utilisateur ?
Avec CRTUSRPRF, qui demande le droit spécial *SECADM. Exemple : CRTUSRPRF USRPRF(DUPONTJ) PASSWORD(...) PWDEXP(*YES) USRCLS(*USER) JOBD(MABIB/MAJOBD) TEXT('Jean Dupont, compta'). PWDEXP(*YES) oblige l'utilisateur à choisir son propre mot de passe à la première connexion.
Quel est le mot de passe par défaut d'un nouveau profil ?
Depuis IBM i 7.5, *NONE : sans mot de passe, le profil ne peut pas ouvrir de session tant qu'on ne lui en donne pas un. La valeur *USRPRF (mot de passe égal au nom du profil) existe toujours, mais IBM la déconseille.
Comment attacher une JOBD à un profil ?
Par le paramètre JOBD de CRTUSRPRF ou CHGUSRPRF. À l'ouverture de session, QINTER utilise la JOBD du profil (poste écran en *USRPRF) ; en batch, SBMJOB JOBD(*USRPRF) prend celle du profil sous lequel le travail tourne. L'utilisateur doit avoir *USE sur la JOBD.
Comment supprimer un profil qui possède des objets ?
DLTUSRPRF refuse par défaut (OWNOBJOPT(*NODLT)) : il faut d'abord transférer les objets (CHGOBJOWN), ou indiquer OWNOBJOPT(*CHGOWN nouveau-propriétaire) ou (*DLT). Pour un départ temporaire, on désactive plutôt le profil : CHGUSRPRF STATUS(*DISABLED).