Hogyan állítsunk be korlátokat a felhasználói futtatási folyamatokhoz Linuxban
A Linux egyik szépsége, hogy szinte mindent irányíthatsz rajta. Ez lehetővé teszi a rendszergazdának, hogy nagy ellenőrzést gyakoroljon a rendszere felett, és jobban kihasználja a rendszer erőforrásait.
Bár néhányan talán soha nem gondoltak erre, fontos tudni, hogy Linuxban korlátozhatja, hogy egy felhasználó mennyi erőforrást és mennyi ideig használhat fel.
Olvassa el még: Hogyan lehet növelni a megnyitott fájlok számának korlátját Linux alatt
Ebben a rövid témakörben bemutatjuk, hogyan korlátozható a felhasználó által elindított folyamatok száma, és hogyan ellenőrizheti és módosíthatja az aktuális korlátokat.
Mielőtt továbbmennénk, két dolgot kell kiemelnünk:
- A felhasználói korlátok módosításához root hozzáférésre van szüksége a rendszerhez
- Rendkívül óvatosnak kell lennie, ha módosítani kívánja ezeket a határértékeket
A felhasználói korlátok beállításához a következő fájlt kell szerkesztenünk:
/etc/security/limits.conf
Ez a fájl a pam_module által létrehozott ulimit alkalmazására szolgál.
A fájl szintaxisa a következő:
<domain> <type> <item> <value>
Itt megállunk, hogy megvitassuk az egyes lehetőségeket:
- Domain – ez magában foglalja a felhasználóneveket, csoportokat, tartományokat stb
- Típus – lágy és kemény határértékek
- Elem – a korlátozott tétel – magméret, fájlméret, nproc stb.
- Érték – ez az adott korlát értéke
Egy jó minta egy limithez:
@student hard nproc 20
A fenti sor szigorú korlátot állít be, maximum 20 folyamat a „hallgató”
csoportban.
Ha meg szeretné tekinteni egy bizonyos folyamat korlátait, egyszerűen „macskázza” a limitfájlt, a következőképpen:
cat /proc/PID/limits
Ahol a PID a tényleges folyamatazonosító, a folyamatazonosítót a ps paranccsal találhatja meg. Részletesebb magyarázatért olvassa el cikkünket, amely a következőt írja: Find Running Linux Processes and Set Process Limits Per-User Level
Tehát itt van egy példa:
cat /proc/2497/limits
Minta kimenet
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
Az összes sor magától értetődő. Ha azonban többet szeretne megtudni a limits.conf fájlban megadható beállításokról, tekintse meg az itt található kézikönyvet.
Ha bármilyen kérdése vagy észrevétele van, kérjük, ne habozzon benyújtani azokat az alábbi megjegyzés részben.