Valeur système IBM i (AS/400) · Sécurité
QSHRMEMCTL
Contrôle de la mémoire partagée
Autorise ou interdit aux utilisateurs d'écrire dans de la mémoire partagée ou mappée (shmat, mmap), un durcissement pour les environnements très sensibles.
À quoi elle sert
Cette valeur contrôle l'usage de la mémoire partagée avec droit d'écriture, via les API de mémoire partagée comme shmat() ou les objets mémoire mappés sur des fichiers de flux avec mmap(). À 1, ces usages sont permis ; à 0, ils sont refusés.
Elle concerne le responsable sécurité et les développeurs de programmes qui utilisent ces API. Il faut les droits spéciaux *ALLOBJ et *SECADM.
Les valeurs possibles
| Valeur | Signification |
|---|---|
0 | La mémoire partagée ou mappée avec droit d'écriture est interdite. |
1 | Elle est autorisée (valeur livrée). |
Prise en compte : Immédiate.
La valeur recommandée
IBM déconseille 1 pour les environnements à exigences de sécurité élevées, mais conservez-le si des applications (API de mémoire partagée ou mmap) utilisent la mémoire partagée. Ne passez à 0 que sur un environnement qui l'exige et après test.
La changer
CHGSYSVAL SYSVAL(QSHRMEMCTL) VALUE('0')
Pour lire la valeur actuelle et celle de la livraison, en SQL :
SELECT SYSTEM_VALUE_NAME, SYSTEM_VALUE, SHIPPED_DEFAULT_VALUE
FROM QSYS2.SYSTEM_VALUE_INFO
WHERE SYSTEM_VALUE_NAME = 'QSHRMEMCTL'
Le piège
Passer à 0 refuse l'écriture dans la mémoire partagée à tous les utilisateurs et peut faire échouer des applications ou des services qui en dépendent, sans que l'erreur soit évidente.