1. Dans CentOS/RHEL, la création de fichiers principaux est désactivée par défaut. Pour l'activer, exécutez la commande ci-dessous :
# ulimit -S -c unlimited > /dev/null 2>&1
puis exécutez le programme dans le même environnement shell.
2. Pour l'activer de manière permanente, veuillez suivre les étapes ci-dessous :
– Modifier /etc/security/limits.conf .
# vi /etc/security/limits.conf * soft core unlimited
Le '* ' est utilisé pour activer la taille de coredump sur illimitée pour tous les utilisateurs.
– Modifier /etc/sysctl.conf pour ajouter le chemin du vidage de mémoire et le format de fichier du fichier de base. Par défaut, le fichier core sera généré dans le répertoire de travail du processus en cours d'exécution.
# vi /etc/sysctl.conf kernel.core_pattern = /var/crash/core.%e.%p.%h.%t
Ici,
/var/crash est le chemin et core.%e.%p.%h.%t est le format de fichier, où :
%e – nom du fichier exécutable.
%p – PID du processus vidé.
%t – heure du vidage (secondes depuis 0:00h, 1er janvier 1970).
%h – hostname (identique à 'nodename' renvoyé par uname(2)).
Assurez-vous que les processus disposent des autorisations appropriées pour le répertoire configuré (par exemple, /var/carsh/).
– Définir fs.suid_dumpable pour les binaires setuid ou autrement protégés/entachés.
# vi /etc/sysctl.conf fs.suid_dumpable = 2
Voici la signification de chaque valeur prédéfinie :
- 0 – (par défaut) :comportement traditionnel. Tout processus qui a changé de niveau de privilège ou qui est exécuté uniquement ne sera pas vidé.
- 1 – (débogage) :tous les processus vident le noyau lorsque cela est possible. Le vidage mémoire appartient à l'utilisateur actuel et aucune sécurité n'est appliquée. Ceci est destiné uniquement aux situations de débogage du système.
- 2 – (suidsafe) :tout binaire qui normalement ne doit pas être vidé est vidé en lecture par root uniquement. Cela permet à l'utilisateur final de supprimer un tel vidage mais pas d'y accéder directement. Pour des raisons de sécurité, les vidages mémoire dans ce mode n'écraseront pas les uns les autres ni d'autres fichiers. Ce mode est approprié lorsque les administrateurs tentent de déboguer des problèmes dans un environnement normal.
– Chargez les paramètres à l'aide de la commande sysctl ci-dessous après avoir modifié /etc/sysctl.conf ci-dessous :
# sysctl -p
Pour collecter les vidages mémoire des packages non signés, définissez OpenGPGCheck =no dans /etc/abrt/abrt-action-save-package-data.conf . Pour collecter des vidages mémoire à partir d'un logiciel non empaqueté, définissez ProcessUnpackaged =yes dans /etc/abrt/abrt-action-save-package-data.conf
– Redémarrez le démon abrtd - en tant que root - pour que les nouveaux paramètres prennent effet.
# service abrtd restart # service abrt-ccpp restart
Dans CentOS/RHEL 7 :
# systemctl start abrtd.service # systemctl start abrt-ccpp.service
Désormais, CentOS/RHEL est prêt à générer des fichiers de vidage de mémoire lorsque les processus sont abandonnés avec une erreur de segmentation.
Remarque :Les démons et fonctionnalités fournis par l'outil Red Hat Automatic Bug Reporting Tool (ABRT) ne sont pas pris en charge avec CentOS/RHEL. Les packages ABRT et les fichiers associés, tels que libreport, sont inclus dans la distribution pour satisfaire les dépendances des packages, mais les fonctionnalités de ces packages ne sont pas prises en charge.