/proc/sys/fs/ - variabile ale nucleului referitoare la sistemele
de fișiere
- /proc/sys/fs/
- Acest director conține fișiere și subdirectoare
pentru variabilele nucleului referitoare la sistemele de
fișiere.
- /proc/sys/fs/aio-max-nr și /proc/sys/fs/aio-nr
(începând cu Linux 2.6.4)
- aio-nr este suma totală a numărului de evenimente
specificate de apelurile io_setup(2) pentru toate contextele AIO
active în prezent. Dacă aio-nr atinge
aio-max-nr, atunci io_setup(2) va eșua cu eroarea
EAGAIN. Creșterea aio-max-nr nu duce la prealocarea
sau redimensionarea niciunei structuri de date a nucleului.
- /proc/sys/fs/binfmt_misc
- Documentația pentru fișierele din acest director poate fi
găsită în sursa nucleului Linux în
fișierul Documentation/admin-guide/binfmt-misc.rst (sau
în Documentation/binfmt_misc.txt pe nucleele mai
vechi).
- /proc/sys/fs/dentry-state (începând cu Linux
2.2)
- Acest fișier conține informații despre starea
cache-ului de directoare (dcache). Fișierul conține
șase numere, nr_dentry, nr_unused, age_limit
(vârsta în secunde), want_pages (pagini solicitate de
sistem) și două valori fictive.
- •
- nr_dentry este numărul de dentries alocate (intrări
dcache). Acest câmp este neutilizat în Linux 2.2.
- •
- nr_unused este numărul de dentries neutilizate.
- •
- age_limit este vârsta în secunde după care
intrările dcache pot fi recuperate atunci când memoria este
scurtă.
- •
- want_pages este diferită de zero atunci când nucleul
a apelat shrink_dcache_pages() și dcache nu este încă
curățat.
- /proc/sys/fs/dir-notify-enable
- Acest fișier poate fi utilizat pentru a dezactiva sau activa
interfața dnotify descrisă în fcntl(2)
la nivelul întregului sistem. O valoare de 0 în acest
fișier dezactivează interfața, iar o valoare de 1 o
activează.
- /proc/sys/fs/dquot-max
- Acest fișier arată numărul maxim de intrări
ale cotelor de disc din memoria cache. Pe unele sisteme (2.4), acesta nu
este prezent. Dacă numărul de intrări libere de
cotă de disc în cache este foarte mic și aveți
un număr impresionant de utilizatori simultani ai sistemului, este
posibil să doriți să măriți
limita.
- /proc/sys/fs/dquot-nr
- Acest fișier arată numărul de intrări de cote
de disc alocate și numărul de intrări de cote de disc
libere.
- /proc/sys/fs/epoll/ (începând cu Linux 2.6.28)
- Acest director conține fișierul max_user_watches,
care poate fi utilizat pentru a limita cantitatea de memorie a nucleului
consumată de interfața epoll. Pentru detalii
suplimentare, consultați epoll(7).
- /proc/sys/fs/file-max
- Acest fișier definește o limită la nivel de sistem
privind numărul de fișiere deschise pentru toate procesele.
Apelurile sistemului care eșuează atunci când
întâlnesc această limită eșuează
cu eroarea ENFILE; (a se vedea, de asemenea, setrlimit(2),
care poate fi utilizat de un proces pentru a stabili limita per-proces,
RLIMIT_NOFILE, privind numărul de fișiere pe care le
poate deschide). Dacă primiți multe mesaje de eroare
în jurnalul nucleului despre epuizarea gestionarilor de
fișiere (descrieri de fișiere deschise)
(căutați „VFS: file-max limit <number>
reached”), încercați să creșteți
această valoare:
-
echo 100000 > /proc/sys/fs/file-max
- Procesele privilegiate (CAP_SYS_ADMIN) pot trece peste limita
file-max.
- /proc/sys/fs/file-nr
- Acest fișier (numai pentru citire) conține trei numere:
numărul de gestionari de fișiere alocați (de exemplu,
numărul de descrieri de fișiere deschise; a se vedea
open(2)); numărul de gestionari de fișiere libere;
și numărul maxim de gestionari de fișiere (de
exemplu, aceeași valoare ca /proc/sys/fs/file-max).
Dacă numărul de gestionari de fișiere alocați
este aproape de maxim, ar trebui să luați în
considerare creșterea maximului. Înainte de Linux 2.6,
nucleul aloca gestionari de fișiere în mod dinamic, dar nu-i
elibera din nou. În schimb, gestionarii de fișiere liberi
erau păstrați într-o listă pentru realocare;
valoarea „free file handles” indică dimensiunea
acelei liste. Un număr mare de gestionari de fișiere libere
indică faptul că în trecut a existat un vârf
în utilizarea gestionarilor de fișiere deschise.
Începând cu Linux 2.6, nucleul
dezalocă(eliberează) gestionarii de fișiere
eliberate, iar valoarea „free file handles” este
întotdeauna zero.
- /proc/sys/fs/inode-max (prezent doar până la Linux
2.2)
- Acest fișier conține numărul maxim de noduri-i
în memorie. Această valoare ar trebui să fie de 3-4
ori mai mare decât valoarea din file-max, deoarece
stdin, stdout și soclurile de rețea au nevoie,
de asemenea, de un nod-i pentru a le gestiona. Atunci când
rămâneți în mod regulat fără
noduri-i, trebuie să măriți această
valoare.
- Începând cu Linux 2.4, nu mai există o limită
statică a numărului de noduri-i, iar acest fișier
este eliminat.
- /proc/sys/fs/inode-nr
- Acest fișier conține primele două valori din
inode-state.
- /proc/sys/fs/inode-state
- Acest fișier conține șapte numere: nr_inodes,
nr_free_inodes, preshrink și patru valori fictive
(întotdeauna zero).
- nr_inodes reprezintă numărul de noduri-i pe care
sistemul le-a alocat. nr_free_inodes reprezintă
numărul de noduri-i libere.
- preshrink este diferită de zero atunci când
nr_inodes > inode-max și sistemul trebuie
să reducă lista de noduri-i în loc să aloce
mai multe; de la Linux 2.4, acest câmp este o valoare falsă
(întotdeauna zero).
- /proc/sys/fs/inotify/ (începând cu Linux 2.6.13)
- Acest director conține fișierele max_queued_events,
max_user_instances și max_user_watches, care pot fi
utilizate pentru a limita cantitatea de memorie a nucleului
consumată de interfața inotify. Pentru detalii
suplimentare, consultați inotify(7).
- /proc/sys/fs/lease-break-time
- Acest fișier specifică perioada de grație pe care
nucleul o acordă unui proces care deține un contract de
închiriere a unui fișier (fcntl(2)) după ce a
trimis un semnal procesului respectiv prin care îl
informează că un alt proces așteaptă să
deschidă fișierul. În cazul în care titularul
închirierii nu elimină sau nu retrogradează
închirierea în această perioadă de
grație, nucleul întrerupe cu forța
închirierea.
- /proc/sys/fs/leases-enable
- Acest fișier poate fi utilizat pentru a activa sau dezactiva
închirierea fișierelor (fcntl(2)) la nivelul
întregului sistem. Dacă acest fișier conține
valoarea 0, închirierile sunt dezactivate. O valoare
diferită de zero activează închirierile.
- /proc/sys/fs/mount-max (începând cu Linux 4.9)
- Valoarea din acest fișier specifică numărul maxim de
montări care pot exista într-un spațiu de nume al
montărilor. Valoarea implicită din acest fișier este
100 000.
- /proc/sys/fs/mqueue/ (începând cu Linux 2.6.6)
- Acest director conține fișierele msg_max,
msgsize_max și queues_max, care controlează
resursele utilizate de cozile de mesaje POSIX. Consultați
mq_overview(7) pentru detalii.
- /proc/sys/fs/nr_open (începând cu Linux 2.6.25)
- Acest fișier impune un plafon pentru valoarea la care poate fi
ridicată limita de resurse RLIMIT_NOFILE (a se vedea
getrlimit(2)). Acest plafon este impus atât pentru procesele
neprivilegiate, cât și pentru cele privilegiate. Valoarea
implicită în acest fișier este 1048576.
Înainte de Linux 2.6.25, plafonul pentru RLIMIT_NOFILE era
codificat la aceeași valoare.
- /proc/sys/fs/overflowgid și
/proc/sys/fs/overflowuid
- Aceste fișiere vă permit să modificați
valoarea UID și GID fixe. Valoarea implicită este 65534.
Unele sisteme de fișiere acceptă numai UID-uri și
GID-uri pe 16 biți, deși în Linux UID-urile și
GID-urile sunt pe 32 de biți. Atunci când unul dintre aceste
sisteme de fișiere este montat cu scrierea activată, orice
UID sau GID care ar depăși 65535 este convertit la valoarea
de depășire înainte de a fi scris pe disc.
- /proc/sys/fs/pipe-max-size (începând cu Linux
2.6.35)
- A se vedea pipe(7).
- /proc/sys/fs/pipe-user-pages-hard (începând cu Linux
4.5)
- A se vedea pipe(7).
- /proc/sys/fs/pipe-user-pages-soft (începând cu Linux
4.5)
- A se vedea pipe(7).
- /proc/sys/fs/protected_fifos (începând cu Linux
4.19)
- Valoarea din acest fișier este/poate fi stabilită la una
dintre următoarele valori:
- 0
- Scrierea în FIFO-uri este nerestricționată.
- 1
- Nu se permite O_CREAT open(2) pe FIFO-uri pe care apelantul
nu le deține în directoare lipicioase cu acces de scriere la
nivel global, cu excepția cazului în care FIFO-ul este
deținut de proprietarul directorului.
- 2
- Ca și pentru valoarea 1, dar restricția se aplică
și directoarelor lipicioase cu acces de scriere pentru grup.
- Intenția protecțiilor de mai sus este de a evita scrierile
neintenționate într-o FIFO controlată de atacator
atunci când un program se așteaptă să creeze
un fișier obișnuit.
- /proc/sys/fs/protected_hardlinks (începând cu Linux
3.6)
- În cazul în care valoarea din acest fișier este 0, nu
sunt impuse restricții privind crearea de legături
permanente (acesta este comportamentul istoric înainte de Linux
3.6). Atunci când valoarea din acest fișier este 1, se poate
crea o legătură dură către un fișier
țintă numai dacă una dintre următoarele
condiții este adevărată:
- •
- Procesul apelant are capacitatea CAP_FOWNER în
spațiul său de nume al utilizatorului, iar UID-ul
fișierului are o asociere în spațiul de nume.
- •
- UID-ul sistemului de fișiere al procesului care creează
legătura corespunde proprietarului (UID) fișierului
țintă (după cum se descrie în
credentials(7), UID-ul sistemului de fișiere al unui proces
este în mod normal același cu UID-ul său
efectiv).
- •
- Toate condițiile următoare sunt adevărate:
- •
- ținta este un fișier obișnuit;
- •
- fișierul țintă nu are activat bitul de mod
set-user-ID;
- •
- fișierul țintă nu are biții de mod
set-group-ID și group-executable activați; și
- •
- apelantul are permisiunea de a citi și de a scrie în
fișierul țintă (fie prin masca de permisiuni a
fișierului, fie pentru că dispune de
capacitățile corespunzătoare).
- Valoarea implicită în acest fișier este 0. Stabilirea
valorii la 1 previne o clasă veche de probleme de securitate
cauzate de cursele de timp de verificare și de timp de utilizare
bazate pe legături dure, observate cel mai frecvent în
directoare de tip acces-global-de-scriere precum /tmp. Metoda
obișnuită de exploatare a acestui defect constă
în depășirea limitelor de privilegii atunci
când se urmărește o anumită
legătură dură (de exemplu, un proces root
urmărește o legătură dură creată
de un alt utilizator). În plus, pe sistemele fără
partiții separate, acest lucru împiedică utilizatorii
neautorizați să „fixeze” fișiere
vulnerabile set-user-ID și set-group-ID împotriva
actualizării de către administrator, sau să
facă legături către fișiere speciale.
- /proc/sys/fs/protected_regular (începând cu Linux
4.19)
- Valoarea din acest fișier este/poate fi stabilită la una
dintre următoarele valori:
- 0
- Scrierea în fișiere obișnuite este
nerestricționată.
- 1
- Nu se permite O_CREAT open(2) pe fișiere
obișnuite pe care apelantul nu le deține în
directoare lipicioase cu acces de scriere global, cu excepția
cazului în care fișierul obișnuit este deținut
de proprietarul directorului.
- 2
- Ca și pentru valoarea 1, dar restricția se aplică
și directoarelor lipicioase cu acces de scriere pentru grup.
- Intenția protecțiilor de mai sus este similară cu
protected_fifos, dar permite unei aplicații să evite
scrierea într-un fișier obișnuit controlat de
atacator, atunci când aplicația se aștepta să
creeze unul.
- /proc/sys/fs/protected_symlinks (începând cu Linux
3.6)
- Atunci când valoarea din acest fișier este 0, nu sunt impuse
restricții privind urmărirea legăturilor simbolice
(de exemplu, acesta este comportamentul istoric înainte de Linux
3.6). Atunci când valoarea din acest fișier este 1,
legăturile simbolice sunt urmate numai în următoarele
circumstanțe:
- •
- UID-ul sistemului de fișiere al procesului care urmează
legătura corespunde proprietarului (UID) legăturii simbolice
(după cum se descrie în credentials(7), UID-ul
sistemului de fișiere al unui proces este în mod normal
același cu UID-ul său efectiv);
- •
- legătura nu se află într-un director lipicios cu
acces global de scriere; sau
- •
- legătura simbolică și directorul său
părinte au același proprietar (UID)
- Un apel de sistem care nu reușește să urmeze o
legătură simbolică din cauza restricțiilor de
mai sus returnează eroarea EACCES în
errno.
- Valoarea implicită în acest fișier este 0. Stabilirea
valorii la 1 evită o clasă veche de probleme de securitate
bazate pe curse de timp de verificare, timp de utilizare la accesarea
legăturilor simbolice.
- /proc/sys/fs/suid_dumpable (începând cu Linux
2.6.13)
- Valoarea din acest fișier este atribuită fanionului
„dumpable” al unui proces în circumstanțele
descrise în prctl(2). De fapt, valoarea din acest
fișier determină dacă sunt produse fișiere de
descărcare a conținutului memoriei pentru set-user-ID sau
pentru alte binare protejate/alterate. Activarea parametrului
„dumpable” afectează, de asemenea, dreptul de
proprietate asupra fișierelor din directorul /proc/pid al
unui proces, astfel cum este descris mai sus.
- Pot fi specificate trei valori întregi diferite:
- 0 (implicit)]
- Acest lucru asigură comportamentul tradițional
(înainte de Linux 2.6.13). Nu va fi produsă o
descărcare a conținutului memoriei pentru un proces care
și-a schimbat acreditările (apelând
seteuid(2), setgid(2) sau similar, sau executând un
program set-user-ID sau set-group-ID) sau al cărui binar nu are
permisiunea de citire activată.
- 1 („debug”)
- Toate procesele descarcă conținutul memoriei atunci
când este posibil; (motivele pentru care un proces ar putea
totuși să nu descarce conținutul memorie sunt
descrise în core(5)). Descărcarea conținutului
memoriei este deținută de ID-ul de utilizator al sistemului
de fișiere al procesului de descărcare a datelor și
nu se aplică nicio măsură de securitate. Acest mod
este destinat numai situațiilor de depanare a sistemului: acest mod
este nesigur deoarece permite utilizatorilor neprivilegiați
să examineze conținutul memoriei proceselor
privilegiate.
- 2 („suidsafe”)
- Orice binar care, în mod normal, nu ar fi descărcat (a se
vedea „0” de mai sus) este descărcat pentru a putea
fi citit numai de către root. Acest lucru permite utilizatorului
să elimine fișierul cu datele din memorie descărcate,
dar nu să îl citească. Din motive de securitate,
fișierele cu datele din memorie descărcate, în acest
mod nu se vor suprascrie unul pe altul sau pe alte fișiere. Acest
mod este adecvat atunci când administratorii încearcă
să depaneze probleme într-un mediu normal.
- În plus, începând cu Linux 3.6,
/proc/sys/kernel/core_pattern trebuie să fie fie un nume de
rută absolut, fie o comandă de tip conductă,
după cum se specifică în core(5). Vor fi
scrise avertismente în jurnalul nucleului dacă
core_pattern nu respectă aceste reguli și nu va fi
produsă nicio descărcare a conținutului
memoriei.
- Pentru detalii despre efectul activării parametrului
„dumpable” al unui proces asupra verificării modului
de acces ptrace, consultați ptrace(2).
- /proc/sys/fs/super-max
- Acest fișier controlează numărul maxim de
super-blocuri și, prin urmare, numărul maxim de sisteme de
fișiere montate pe care le poate avea nucleul. Trebuie să
măriți doar super-max dacă trebuie să
montați mai multe sisteme de fișiere decât vă
permite valoarea curentă din super-max.
- /proc/sys/fs/super-nr
- Acest fișier conține numărul de sisteme de
fișiere montate în prezent.
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 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.