Bonjour Delphine,
Difficile de protéger des spools des utilisateurs *ALLOBJ et *SPLCTL par définition !
Pour l'API, la doc (
https://www.ibm.com/docs/en/i/7.5?topic ... urity.html) indique :
Exit Point QIBM_QSP_SECURITY allows registered exit programs to control access to spooled files on a file-by-file basis. The exit programs will be called at the beginning of each IBM i spool command or API, except under any of the following conditions:
1. The job or thread has spool control (*SPLCTL) special authority. The special authority may originate from the user profile, group profile, or adopted authority.
2.The job or thread has job control (*JOBCTL) special authority and the spooled file resides on an output queue with OPRCTL(*YES). The special authority may originate from the user profile, group profile, or adopted authority.
3.The command or API is executed in a system job (including SCPF), a subsystem monitor job, or any job that is running under one of the following system user profiles:
QAUTPROF, QCLUMGT, QCOLSRV, QDBSHR, QDBSHRDO, QDFTOWN, QDIRSRV, QDLFM, QDOC, QDSNX, QFNC, QGATE, QLPAUTO, QLPINSTALL, QMSF, QNETSPLF, QNFSANON, QNTP, QPEX, QPM400, QRJE, QSNADS, QSPL, QSPLJOB, QSRVAGT, QSYS, QTCP, QTFTP, QTSTRQS.
=> En plus clair :
1. Si le travail qui accède au spoule est démarré (ou adopté, y compris par un programme en *OWNER) par un utilisateur ayant *SPLCTL, le point d'exit n'est pas déclenché (y compris si provient d'un profil de groupe)
2. Idem pour un utilisateur *JOBCTL si l'outq contenant le spoule a OPRCTL(*YES)
3. Si l'accès se fait par un job système
De plus, il semble que pour des questions de performance, lors du premier accès à un spoule dans un travail, le système charge la liste des programmes associés au point d'exit QIBM_QSP_SECURITY et l'utilise ensuite durant la durée du job. Si cette liste vient à changer, il faut arrêter/démarrer un nouveau travail pour accéder au spoule et vérifier la prise en compte du point d'exit.
A vérifier pour commencer que les utilisateurs (y compris profils de groupe ou owner de programmes) ne disposent pas de *SPLCTL (ou *JOBCTL si les OUTQ sont avec OPRCTL(*YES)).