proc(5) File Formats Manual proc(5) NAZWA proc - pseudosystem plikow z informacjami o procesach, systemie i sysctl OPIS proc jest pseudosystemem plikow, ktory udostepnia interfejs do struktur danych jadra. Zazwyczaj jest montowany w katalogu /proc. Zwykle jest montowany automatycznie przez system, lecz mozna go zamontowac rowniez recznie za pomoca polecenia takiego jak: mount -t proc proc /proc Wiekszosc plikow w systemie plikow proc jest przeznaczonych tylko do odczytu, lecz niektore pliki sa dostepne do zapisu, umozliwiajac modyfikacje zmiennych jadra. Opcje montowania System plikow proc obsluguje nastepujace opcje montowania: hidepid=n (since Linux 3.3) Opcja kontroluje kto moze uzyskac dostep do informacji w katalogach /proc/pid. Argument n przyjmuje jedna z nastepujacych wartosci: 0 Wszyscy maja dostep do katalogow /proc/pid. Jest to tradycyjne zachowanie i domyslne, jesli nie uzyje sie tej opcji montowania. 1 Uzytkownicy nie moga uzyskac dostepu do plikow i podkatalogow w katalogach /proc/pid innych niz ich wlasne (same katalogi /proc/pid pozostaja widoczne). Wrazliwe pliki, takie jak /proc/pid/cmdline i /proc/pid/status sa chronione przed innymi uzytkownikami. Dzieki temu niemozliwe staje sie dowiedzenie sie, czy jakis uzytkownik uruchomil konkretny program (tak dlugo, jak sam program nie ujawnia tego swoim zachowaniem). 2 Jak w trybie 1, lecz dodatkowo katalogi /proc/pid przynalezne innym uzytkownikom pozostaja niewidoczne. Oznacza to, ze wpisy /proc/pid nie moga dluzej sluzyc do poznania PID-ow w systemie. Nie ukrywa to faktu, ze proces o okreslonym PID istnieje (mozna sie tego dowiedziec innymi sposobami, np. poprzez ,,kill -0 $PID"), ale ukrywa UID i GID procesu, ktore w innym przypadku mozna by bylo poznac wykonujac stat(2) na katalogu /proc/pid. To znacznie utrudnia zadanie atakujacego polegajace na pozyskaniu informacji o dzialajacych procesach (np. odkrycie czy jakis demon dziala z wiekszymi uprawnieniami, czy jakis uzytkownik ma uruchomiony jakis wrazliwy program, czy inni uzytkownicy w ogole maja cos uruchomione itd.). gid=gid (since Linux 3.3) Okresla ID grupy, ktorej czlonkowie sa uprawnieni do dostepu do informacji zablokowanych innym przez hidepid (tzn. uzytkownicy w tej grupie zachowuja sie tak, jakby /proc zostalo zamontowane z hidepid=0). Powinno sie uzywac tej grupy, zamiast innych rozwiazan, takich jak umieszczanie uzytkownikow nie-root w pliku sudoers(5). subset=pid (since Linux 5.8) Pokazuje jedynie okreslony podzestaw systemu procfs, ukrywajac wszelkie pliki i katalogi glownego poziomu, ktore nie sa zwiazane z zadaniami. Przeglad W katalogu /proc wystepuja nastepujace ogolne grupy plikow i podkatalogow: Podkatalogi /proc/pid Kazdy z tych podkatalogow zawiera pliki i podkatalogi ujawniajace informacje o procesach o okreslonym identyfikatorze procesu. W kazdym z katalogow /proc/pid, znajduje sie podkatalog task, zawierajacy z kolei podkatalogi w postaci task/tid, zawierajacy informacje o kazdym z watkow procesu, gdzie tid jest identyfikatorem watku przypisanym przez jadro danego watkowi. Podkatalogi /proc/pid sa widoczne przy odpytywaniu za pomoca getdents(2) (zatem sa widoczne gdy uzytkownik uzyje ls(1) do przegladania zawartosci /proc). Podkatalogi /proc/tid Kazdy z tych podkatalogow zawiera pliki i podkatalogi ujawniajace informacje o watku, wedlug jego identyfikatora watku. Zawartosc podkatalogow jest taka sama, jak odpowiadajacych im katalogow /proc/pid/task/tid. Podkatalogi /proc/tid nie sa widoczne, przy odczytywaniu katalogu /proc za pomoca getdents(2) (i co za tym idzie nie sa widoczne, przy przegladaniu zawartosci /proc za pomoca ls(1)). /proc/self Gdy proces uzyskuje dostep do tego magicznego dowiazania symbolicznego, jest ono tlumaczone na jego wlasny katalog /proc/pid. /proc/thread-self Gdy watek uzyskuje dostep do tego magicznego dowiazania symbolicznego, jest ono tlumaczone na jego wlasny katalog /proc/self/task/tid. /proc/[a-z]* Rozne inne pliki i podkatalogi w katalogu /proc ujawniajace informacje systemowe. Szczegolowy opis wszystkich powyzszych pozycji znajduje sie w oddzielnych stronach podrecznika systemowego, ktorych nazwy zaczynaja sie od proc_. UWAGI Many files contain strings (e.g., the environment and command line) that are in the internal format, with subfields terminated by null bytes ('\0'). When inspecting such files, you may find that the results are more readable if you use a command of the following form to display them: $ cat file | tr '\000' '\n' ZOBACZ TAKZE 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) Pliki w zrodlach jadra Linux: Documentation/filesystems/proc.rst, Documentation/admin-guide/sysctl/fs.rst, Documentation/admin-guide/sysctl/kernel.rst, Documentation/admin-guide/sysctl/net.rst i Documentation/admin-guide/sysctl/vm.rst. TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.9.1 15 czerwca 2024 r. proc(5)