Aller au contenu

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

ValeurSignification
0La mémoire partagée ou mappée avec droit d'écriture est interdite.
1Elle 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.