Kako postaviti ograničenja za korisničke pokrenute procese u Linuxu


Jedna od ljepota Linuxa je da možete kontrolirati gotovo sve u vezi s njim. To daje administratoru sustava veliku kontrolu nad svojim sustavom i bolju iskorištenost resursa sustava.

Iako neki možda nikada nisu razmišljali o tome, važno je znati da u Linuxu možete ograničiti koliko resursa jedan korisnik može koristiti i koliko dugo.

Pročitajte također: Kako povećati ograničenje broja otvorenih datoteka u Linuxu

U ovoj kratkoj temi pokazat ćemo vam kako ograničiti broj procesa koje pokreće korisnik te kako provjeriti trenutna ograničenja i izmijeniti ih.

Prije nego što nastavimo, moramo istaknuti dvije stvari:

  1. Za izmjenu korisničkih ograničenja potreban vam je root pristup vašem sustavu
  2. Morate biti vrlo oprezni ako planirate izmijeniti ova ograničenja

Da bismo postavili korisnička ograničenja, morat ćemo urediti sljedeću datoteku:


/etc/security/limits.conf

Ova datoteka se koristi za primjenu ulimit kreiranog pomoću pam_module.

Datoteka ima sljedeću sintaksu:

<domain> <type> <item> <value>

Ovdje ćemo stati kako bismo razgovarali o svakoj od opcija:

  • Domena – ovo uključuje korisnička imena, grupe, raspone guidova itd
  • Vrsta – meka i tvrda ograničenja
  • Stavka – stavka koja će biti ograničena – veličina jezgre, veličina datoteke, proc itd.
  • Vrijednost – ovo je vrijednost za dano ograničenje

Dobar uzorak za ograničenje je:

@student          hard           nproc                20

Gornji redak postavlja čvrsto ograničenje od maksimalno 20 procesa u grupi "student".

Ako želite vidjeti ograničenja određenog procesa, možete jednostavno "mačkati" datoteku ograničenja ovako:


cat /proc/PID/limits

Gdje je PID stvarni ID procesa, ID procesa možete saznati pomoću naredbe ps. Za detaljnije objašnjenje pročitajte naš članak koji kaže – Pronađite pokrenute Linux procese i postavite ograničenja procesa po razini korisnika

Evo primjera:


cat /proc/2497/limits
Uzorak izlaza

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             32042                32042                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       32042                32042                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us   

Svi su stihovi prilično razumljivi sami po sebi. Međutim, ako želite pronaći više postavki koje možete unijeti u datoteku limits.conf, možete pogledati priručnik koji se nalazi ovdje.

Ako imate pitanja ili komentara, slobodno ih pošaljite u odjeljak za komentare u nastavku.