proc(5)

NUME
proc - pseudo-sistem de fișiere pentru informații despre procese, informații despre sistem și sysctl

DESCRIERE
Sistemul de fișiere proc este un pseudo-sistem de fișiere care oferă o interfață pentru structurile de date ale nucleului. Acesta este de obicei montat la /proc. De obicei, este montat automat de către sistem, dar poate fi montat și manual folosind o comandă precum:

    mount -t proc proc /proc

Majoritatea fișierelor din sistemul de fișiere proc sunt numai pentru citire, dar unele fișiere sunt inscriptibile, permițând modificarea variabilelor nucleului.

  Opțiuni de montare
Sistemul de fișiere proc acceptă următoarele opțiuni de montare:

hidepid=n (începând cu Linux 3.3)
    Această opțiune controlează cine poate accesa informațiile din directoarele /proc/pid. Argumentul, n, este una dintre următoarele valori:

    0   Oricine poate accesa toate directoarele /proc/pid. Acesta este comportamentul tradițional și implicit dacă această opțiune de montare nu este specificată.

    1   Utilizatorii nu pot accesa fișierele și subdirectoarele din orice directoare /proc/pid, cu excepția propriilor directoare (directoarele /proc/pid rămân vizibile). Fișierele sensibile precum /proc/pid/cmdline și /proc/pid/status sunt acum protejate împotriva altor utilizatori. Acest lucru face imposibilă aflarea dacă un utilizator rulează un anumit program (atât timp cât programul nu se dezvăluie altfel prin comportamentul său).

    2   Ca și în cazul modului 1, dar în plus directoarele /proc/pid aparținând altor utilizatori devin invizibile. Aceasta înseamnă că intrările /proc/pid nu mai pot fi utilizate pentru a descoperi PID-urile de pe sistem. Acest lucru nu ascunde faptul că există un proces cu o anumită valoare PID (acesta poate fi aflat prin alte mijloace, de exemplu, prin „kill -0 $PID”), dar ascunde UID și GID ale unui proces, care altfel ar putea fi aflat prin utilizarea stat(2) pe un director /proc/pid. Acest lucru complică foarte mult sarcina unui atacator de a aduna informații despre procesele care rulează (de exemplu, de a descoperi dacă un demon rulează cu privilegii ridicate, dacă un alt utilizator rulează un program sensibil, dacă alți utilizatori rulează orice program și așa mai departe).

    gid=gid (începând cu Linux 3.3)
        Specifică ID-ul unui grup ai cărui membri sunt autorizați să afle informații despre proces, altfel interzise de hidepid (de exemplu, utilizatorii din acest grup se comportă ca și cum /proc ar fi fost montat cu hidepid=0). Acest grup ar trebui utilizat în locul unor abordări precum introducerea utilizatorilor nonroot în fișierul sudoers(5).

subset=pid (începând cu Linux 5.8)
    Afișează numai subsetul specificat de procfs, ascunzând toate fișierele și directoarele de nivel superior din procfs care nu sunt relaționate cu sarcinile.

  Prezentare generală
Sub /proc, există următoarele grupuri generale de fișiere și subdirectoare:

subdirectoare /proc/pid
    A se vedea proc_pid(5).

    Fiecare dintre aceste subdirectoare conține fișiere și subdirectoare care prezintă informații despre procesul cu ID-ul de proces corespunzător.

    Sub fiecare dintre directoarele /proc/pid, un subdirector task conține subdirectoare de forma task/tid, care conțin informații corespunzătoare despre fiecare dintre firele de execuție din proces, unde tid este ID-ul firului de execuție al nucleului.

    Subdirectoarele /proc/pid sunt vizibile la iterarea prin /proc cu getdents(2) (și astfel sunt vizibile atunci când se utilizează ls(1) pentru a vizualiza conținutul /proc).

subdirectoare /proc/tid
    A se vedea proc_tid(5).

    Fiecare dintre aceste subdirectoare conține fișiere și subdirectoare care expun informații despre firul cu ID-ul firului corespunzător. Conținutul acestor directoare este același cu cel al directoarelor /proc/pid/task/tid corespunzătoare.

    Subdirectoarele /proc/tid nu sunt vizibile la iterarea prin /proc cu getdents(2) (și astfel nu sunt vizibile atunci când se utilizează ls(1) pentru a vizualiza conținutul /proc).

/proc/self
    A se vedea proc_self(5).

    Atunci când un proces accesează această legătură simbolică magică, aceasta se rezolvă în directorul /proc/pid propriu procesului.

/proc/thread-self
    A se vedea proc_thread-self(5).

    Atunci când un fir de execuție accesează această legătură simbolică magică, se rezolvă în directorul /proc/self/task/tid propriu procesului.

/proc/[a-z]*

    Diverse alte fișiere și subdirectoare de sub /proc expun informații la nivel de sistem.

    Consultați și:

    proc_apm(5)
    proc_buddyinfo(5)
    proc_bus(5)
    proc_cgroups(5)
    proc_cmdline(5)
    proc_config.gz(5)
    proc_cpuinfo(5)
    proc_crypto(5)
    proc_devices(5)
    proc_diskstats(5)
    proc_dma(5)
    proc_driver(5)
    proc_execdomains(5)
    proc_fb(5)
    proc_filesystems(5)
    proc_fs(5)
    proc_ide(5)
    proc_interrupts(5)
    proc_iomem(5)
    proc_ioports(5)
    proc_kallsyms(5)
    proc_kcore(5)
    proc_key-users(5)
    proc_keys(5)
    proc_kmsg(5)
    proc_kpagecgroup(5)
    proc_kpagecount(5)
    proc_kpageflags(5)
    proc_ksyms(5)
    proc_loadavg(5)
    proc_locks(5)
    proc_malloc(5)
    proc_meminfo(5)
    proc_modules(5)
    proc_mounts(5)
    proc_mtrr(5)
    proc_net(5)
    proc_partitions(5)
    proc_pci(5)
    proc_profile(5)
    proc_scsi(5)
    proc_slabinfo(5)
    proc_stat(5)
    proc_swaps(5)
    proc_sys(5)
    proc_sysrq-trigger(5)
    proc_sysvipc(5)
    proc_timer_list(5)
    proc_timer_stats(5)
    proc_tty(5)
    proc_uptime(5)
    proc_version(5)
    proc_vmstat(5)
    proc_zoneinfo(5)

NOTE
Multe fișiere conțin șiruri de caractere (de exemplu, mediul și linia de comandă) care sunt în format intern, cu subcâmpuri terminate cu octeți nuli („\0”). Atunci când inspectați astfel de fișiere, puteți constata că rezultatele sunt mai ușor de citit dacă utilizați o comandă de forma următoare pentru a le afișa:

    $ cat fișier | tr '\000' '\n'

CONSULTAȚI ȘI
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)

Fișierele sursă ale nucleului 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.

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.