proc(5) File Formats Manual proc(5)

proc – informations de processus, informations du système et pseudo-système de fichiers sysctl

Le système de fichiers proc est un pseudosystème de fichiers qui fournit une interface pour les structures de données du noyau. Il est généralement monté sur /proc. Ordinairement, il est monté automatiquement par le système, mais il peut aussi l’être manuellement en utilisant une commande telle que :


mount -t proc proc /proc

La plupart des fichiers dans le système de fichiers proc sont en lecture seule, mais certains sont éditables, permettant aux variables du noyau d’être modifiées.

Le système de fichiers proc gère les options de montage suivantes :

Cette option contrôle qui a accès aux informations dans les répertoires /proc/pid. L’argument n possède une des valeurs suivantes :
0
Tout le monde peut accéder à tous les répertoires /proc/pid. C’est le comportement traditionnel et celui par défaut si cette option de montage n’est pas précisée.
1
Les utilisateurs ne peuvent accéder aux fichiers et sous-répertoires dans n’importe quel répertoire /proc/pid sauf dans les leurs (les répertoires /proc/pid demeurent visibles). Les fichiers sensibles tels que /proc/pid/cmdline et /proc/pid/status sont maintenant protégés des autres utilisateurs. Cela rend impossible de savoir si n’importe quel utilisateur exécute un programme particulier (aussi longtemps que le programme ne se révèle de lui-même par son comportement).
2
Comme pour le mode 1, mais en plus les répertoires /proc/pid appartenant aux autres utilisateurs deviennent invisibles. Cela signifie que les enregistrements /proc/pid ne peuvent plus être utilisés pour découvrir les PID du système. Cela ne dissimule pas le fait qu’une valeur de PID particulière existe (elle peut être connue d’une autre manière, par exemple, avec « kill -0 $PID »), mais les UID et GID d’un processus sont cachés, qui peuvent être connus d'une autre manière en utilisant stat(2) sur un répertoire /proc/pid. Cela complique grandement la récolte par un attaquant d’informations sur les processus en cours (par exemple, découvrir si un démon est en cours d’exécution avec des privilèges élevés, si un autre utilisateur utilise un programme sensible, si d’autres utilisateurs exécutent un programme quelconque, etc.).
Indication de l’ID d’un groupe dont les membres sont autorisés à connaitre les informations sur un processus autrement interdites par hidepid (c’est-à-dire que les utilisateurs dans ce groupe se comportent comme si /proc était monté avec hidepid=0). Ce groupe doit être utilisé à la place d’approches telles que mettre les utilisateurs normaux dans le fichier sudoers(5).

Sous /proc, on trouve les groupes et sous-répertoires suivants :

Chacun de ces sous-répertoires contient des fichiers et des sous-répertoires exposant les informations sur le processus ayant l’ID correspondant.
Sous chacun des répertoires /proc/pid, un sous-répertoire task contient des sous-répertoires de la forme task/tid qui contiennent des informations sur chacun des threads dans le processus, où tid est l’ID de thread du noyau du thread.
Les sous-répertoires /proc/pid sont visibles lors de l’itération à travers /proc avec getdents(2) (et donc visibles lors de l’utilisation de ls(1) pour voir le contenu de /proc).
Chacun de ces sous-répertoires contient des fichiers et des sous-répertoires exposant des informations sur le thread avec l’ID du thread correspondant. Le contenu de ces répertoires est le même que celui des répertoires /proc/pid/task/tid correspondants.
Les sous-répertoires /proc/tid ne sont pas visibles lors d’itérations à travers /proc avec getdents(2) (et donc ne sont pas visibles si on utilise ls(1) pour voir le contenu de /proc).
/proc/self
Quand un processus accède à ce lien symbolique magique, il l’interprète comme son propre répertoire /proc/pid.
/proc/thread-self
Quand un thread accède à ce lien symbolique magique, il l’interprète comme son propre répertoire /proc/self/task/tid.
/proc/[a-z]*
D’autres fichiers et répertoires divers sous /proc exposent des informations concernant le système en entier.

Tout ce qui précède est décrit plus en détails ci-après.

De nombreux fichiers contiennent des chaînes (par exemple, l'environnement et la ligne de commande) dans un format interne avec des sous-champs terminés par un octet NULL « \0 ». Pour inspecter de tels fichiers, les résultats peuvent être plus lisibles en utilisant la commande suivante :


$ cat file | tr '\000' '\n'

cat(1), dmesg(1), find(1), free(1), htop(1), init(1), ps(1), pstree(1), tr(1), uptime(1), chroot(2), mmap(2), readlink(2), syslog(2), slabinfo(5), sysfs(5), hier(7), namespaces(7), time(7), arp(8), hdparm(8), ifconfig(8), lsmod(8), lspci(8), mount(8), netstat(8), procinfo(8), route(8), sysctl(8)

Les fichiers des sources du noyau Linux : Documentation/filesystems/proc.rst, Documentation/admin-guide/sysctl/fs.rst, Documentation/admin-guide/sysctl/kernel.rst, Documentation/admin-guide/sysctl/net.rst et Documentation/admin-guide/sysctl/vm.rst.

La traduction française de cette page de manuel a été créée par Christophe Blaess https://www.blaess.fr/christophe/, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr> et Lucien Gentis <lucien.gentis@waika9.com>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

31 octobre 2023 Pages du manuel de Linux 6.06