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 (od Linuksa 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 (od Linuksa 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). 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 directories, 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 Each one of these subdirectories contains files and subdirectories exposing information about the thread with the corresponding thread ID. The contents of these directories are the same as the corresponding /proc/pid/task/tid directories. The /proc/tid subdirectories are not visible when iterating through /proc with getdents(2) (and thus are not visible when one uses ls(1) to view the contents of /proc). /proc/self When a process accesses this magic symbolic link, it resolves to the process's own /proc/pid directory. /proc/thread-self When a thread accesses this magic symbolic link, it resolves to the process's own /proc/self/task/tid directory. /proc/[a-z]* Various other files and subdirectories under /proc expose system-wide information. All of the above are described in more detail below. 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.06 31 pazdziernika 2023 r. proc(5)