proc(5) File Formats Manual proc(5) BEZEICHNUNG proc - Pseudo-Dateisystem fur Prozessinformationen, Systeminformationen und Sycctl BESCHREIBUNG /proc ist ein Pseudo-Dateisystem. Es dient als Schnittstelle zu den Kernel-Datenstrukturen und wird gewohnlich unter /proc eingehangt. Typischerweise wird es vom System automatisch eingehangt. Es kann aber auch mit einem Befehl manuell eingehangt werden: mount -t proc proc /proc Die meisten Eintrage im Dateisystem proc sind nur lesbar, aber einige Dateien sind auch schreibbar, wodurch das Verandern von Kernel-Variablen erlaubt wird. Einhange-Optionen Das Dateisystem proc unterstutzt die folgenden Einhangeoptionen: hidepid=n (seit Linux 3.3) Diese Option regelt, wer auf die Informationen in den Verzeichnissen /proc/PID zugreifen darf. Das Argument n hat einen der folgenden Werte: 0 Jeder darf auf alle /proc/PID-Verzeichnisse zugreifen. Dies ist das traditionelle Verhalten und die Vorgabe, falls diese Einhangeoption nicht angegeben ist. 1 Benutzer durfen auf nur ihre eigenen Dateien und Unterverzeichnisse innerhalb von /proc/PID zugreifen (die Verzeichnisse /proc/PID selbst bleiben sichtbar). Sensitive Dateien wie /proc/PID/cmdline und /proc/PID/status werden jetzt vor anderen Benutzer geschutzt. Dadurch ist es unmoglich, herauszufinden, ob ein andere Benutzer ein bestimmtes Programm ausfuhrt (solange das Programm sich nicht anderweitig durch sein Verhalten zu erkennen gibt). 2 Wie fur Modus 1, aber zusatzlich werden die Verzeichnisse /proc/PID anderer Benutzer unsichtbar. Das bedeutet, dass die Eintrage /proc/PID nicht mehr zur Aufdeckung von PIDs auf dem System genutzt werden konnen. Das versteckt nicht die Tatsache, dass ein bestimmter PID-Wert existiert (dies kann durch andere Methoden, beispielsweise >>kill -0 $PID<<, herausgefunden werden), aber es versteckt die UID und GID des Prozesses, die ansonsten durch Einsatz von stat(2) auf einem /proc/PID-Verzeichnis herausgefunden werden konnte. Dies verkompliziert die Aufgabe eines Angreifers deutlich, Informationen uber laufende Prozesse zu sammeln (z.B. zu entdecken, ob ein Daemon mit erweiterten Privilegien lauft, ob ein anderer Benutzer ein bestimmtes sensitives Programm ausfuhrt, ob ein anderer Benutzer ein bestimmtes Programm uberhaupt ausfuhrt usw.). gid=gid (seit Linux 3.3) Legt die Kennung einer Gruppe fest, deren Mitglieder berechtigt sind, Prozessinformationen herauszufinden, die andernfalls durch hidepid verweigert wurden (d.h. fur Benutzer in der Gruppe verhalt es sich, als ob /proc mit hidepid=0 eingehangt worden ware). Diese Gruppe sollte anderen Ansatzen (wie dem Eintrag von Benutzern in die Datei sudoers(5)) vorgezogen werden. Uberblick Unterhalb von /proc gibt es die folgenden allgemeinen Gruppen von Dateien und Unterverzeichnissen: Unterverzeichnisse von /proc/PID Jedes dieser Unterverzeichnisse enthalt Dateien und Unterverzeichnisse, die Informationen uber die Prozesse mit der entsprechenden Prozesskennung offenlegen. Unterhalb jedes der /proc/PID-Verzeichnisse enthalt ein Task-Unterverzeichnis entsprechende Unterverzeichnisse der Form TaskTID. Diese enthalten entsprechende Informationen uber jeden der Threads in dem Prozess, wobei TID die Kernel-Thread-Kennung des Threads ist. Die Unterverzeichnisse /proc/PID sind beim Durchlauf durch /proc mit getdents(2) sichtbar (und daher sichtbar, wenn ls(1) zur Anzeige der Inhalte von /proc verwandt wird). Unterverzeichnisse von /proc/TID Jedes dieser Unterverzeichnisse enthalt Dateien und Unterverzeichnisse, die Informationen uber den Thread mit der entsprechenden Thread-Kennung offenlegen. Der Inhalt dieser Verzeichnisse ist der gleiche wie bei den entsprechenden /proc/PID/task/TID-Verzeichnissen. Die Verzeichnisse /proc/TID sind beim Durchlauf von /proc mit getdents(2) nicht sichtbar (und daher nicht sichtbar, wenn ls(1) zur Anzeige der Inhalte von /proc verwandt wird). /proc/self Wenn ein Prozess auf diesen magischen symbolischen Link zugreift, wird dieser auf das Verzeichnis /proc/PID des Prozesses selbst aufgelost. /proc/thread-self Wenn ein Thread auf diesen magischen symbolischen Link zugreift, wird dieser auf das Verzeichnis /proc/self/task/TID des Prozesses selbst aufgelost. /proc/[a-z]* Verschiedene andere Dateien und Unterverzeichnisse unter /proc legen systemweite Informationen offen. Alles Dargestellte wird weiter unten mit mehr Details beschrieben. ANMERKUNGEN Viele Dateien enthalten Zeichenketten (z. B. die Umgebung und die Befehlszeile), die im internen Format dargestellt sind, wobei Unterfelder mit Nullbytes (>>\0<<) begrenzt werden. Beim Untersuchen dieser Dateien werden Sie diese vielleicht besser lesbar finden, wenn Sie einen Befehl der folgenden Art zur Anzeige verwenden: $ cat Datei | tr '\000' '\n' SIEHE AUCH 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) Die Linux-Kernelquelldateien: Documentation/filesystems/proc.rst, Documentation/admin-guide/sysctl/fs.rst, Documentation/admin-guide/sysctl/kernel.rst, Documentation/admin-guide/sysctl/net.rst und Documentation/admin-guide/sysctl/vm.rst. UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer , Dr. Tobias Quathamer , Chris Leick , Erik Pfannenstein und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 proc(5)