Kuinka asettaa rajoituksia käyttäjien suorittamille prosesseille Linuxissa


Yksi Linuxin kauneudesta on, että voit hallita melkein kaikkea siinä. Tämä antaa järjestelmänvalvojalle suuren hallinnan järjestelmästään ja järjestelmäresurssien paremman käytön.

Vaikka jotkut eivät ehkä ole koskaan ajatelleet tehdä tätä, on tärkeää tietää, että Linuxissa voit rajoittaa, kuinka paljon resurssia yksittäinen käyttäjä voi käyttää ja kuinka kauan.

Lue myös: Kuinka lisätä avoimien tiedostojen määrää Linuxissa

Tässä lyhyessä aiheessa näytämme, kuinka voit rajoittaa käyttäjän aloittamien prosessien määrää ja kuinka tarkistaa nykyiset rajat ja muokata niitä.

Ennen kuin siirrymme pidemmälle, meidän on huomautettava kaksi asiaa:

  1. Tarvitset järjestelmän pääkäyttäjän oikeudet muokataksesi käyttäjärajoja
  2. Sinun on oltava erittäin varovainen, jos aiot muuttaa näitä rajoja

Käyttäjärajojen määrittämiseksi meidän on muokattava seuraavaa tiedostoa:


/etc/security/limits.conf

Tätä tiedostoa käytetään pam_module:n luoman ulimitin käyttöön.

Tiedostolla on seuraava syntaksi:

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

Tässä pysähdymme keskustelemaan jokaisesta vaihtoehdosta:

  • Verkkotunnus – tämä sisältää käyttäjänimet, ryhmät, opasalueet jne
  • Tyyppi – pehmeät ja kovat rajat
  • Tuote – kohde, jota rajoitetaan – ydinkoko, tiedostokoko, nproc jne.
  • Arvo – tämä on annetun rajan arvo

Hyvä esimerkki rajalle on:

@student          hard           nproc                20

Yllä oleva rivi asettaa tiukan rajan, joka on enintään 20 prosessia "opiskelija"-ryhmässä.

Jos haluat nähdä tietyn prosessin rajat, voit yksinkertaisesti "katsoa" rajatiedoston seuraavasti:


cat /proc/PID/limits

Kun PID on todellinen prosessitunnus, voit selvittää prosessin tunnuksen käyttämällä ps-komentoa. Tarkempia tietoja saat lukemalla artikkelimme, jossa sanotaan - Etsi käynnissä olevia Linux-prosesseja ja aseta prosessirajoitukset käyttäjäkohtaisesti

Joten tässä on esimerkki:


cat /proc/2497/limits
Näytelähtö

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   

Kaikki rivit ovat melko itsestään selviä. Jos kuitenkin haluat löytää lisää asetuksia, jotka voit syöttää limits.conf-tiedostoon, voit katsoa tässä annettua opasta.

Jos sinulla on kysyttävää tai kommentteja, älä epäröi lähettää ne alla olevaan kommenttiosaan.