La commande hidepid
est utilisé pour empêcher les utilisateurs de voir tous processus qui ne leur appartiennent pas, mais il n'offre pas la possibilité de sélectionner un processus spécifique. Est-il possible de masquer un seul processus sur une machine Linux ?
Réponse acceptée :
Un peu sale, et il existe probablement une solution plus propre (peut-être en utilisant SELinux ou grsec), mais vous pouvez masquer un processus en montant un répertoire vide à l'intérieur de /proc/<pid>
.
Par exemple, quelque chose comme ceci :
mount -o bind /empty/dir /proc/42
empêchera les utilisateurs réguliers de voir le processus 42.
Ils verront cependant que quelque chose est caché car ils pourront voir le point de montage.
Si vous voulez faire cela pour un service, vous devrez le faire à chaque démarrage, en utilisant son script d'initialisation ou autre.
Si vous souhaitez masquer le pid uniquement à un utilisateur spécifique, vous pouvez jouer avec les espaces de noms (peut-être en utilisant pam_namespace
) pour que la liaison de montage soit effectuée uniquement dans l'espace de noms de l'utilisateur cible.
Pour inverser cela, exécutez simplement :
umount /proc/42