Úvod
ulimit je vestavěný příkaz prostředí Linux, který umožňuje zobrazení nebo omezení množství systémových prostředků které konzumují jednotliví uživatelé. Omezení využití zdrojů je cenné v prostředích s více uživateli a problémy s výkonem systému.
V tomto tutoriálu se naučíte používat ulimit příkaz v Linuxu s příklady.
Předpoklady
- Systém se systémem Linux
- Přístup k terminálu
- Oprávnění sudo
Co je limited.conf?
Soubor limits.conf file je konfigurační soubor, který definuje nastavení alokace systémových prostředků ulimit používá. Úplná cesta ke konfiguračnímu souboru je /etc/security/limits.conf .
Změna hodnot v souboru přetrvává i po restartu systému. Pro úpravy limits.conf jsou vyžadována oprávnění superuživatele soubor.
První sekce limits.conf soubor vypadá takto:
Vysvětlení ulimit, Soft Limit a Hard Limit v Linuxu
Následující části vysvětlují ulimit syntaxe a rozdíl mezi dvěma typy omezení zdrojů – měkký limit a pevný limit .
ulimit syntaxe
ulimit příkaz má následující obecnou syntaxi:
ulimit [flags][limit] Chcete-li například nastavit velikost fyzické paměti v kilobajtech, zadejte:
ulimit -m 15000 Příznaky
Použijte ulimit příznaky pro zobrazení nebo omezení jednotlivých hodnot pro různé systémové prostředky. Když [limit] je daná, je to nová hodnota zadaného zdroje.
Dostupné příznaky jsou:
| Příznak | Popis |
|---|---|
-H | pevný limit pro daný zdroj. Pouze uživatelé root mohou zvýšit pevný limit a jakýkoli proces ho může snížit. |
-S | Měkký limit pro daný zdroj. Jakýkoli proces může změnit měkký limit. |
-a | Uvádí všechny aktuální limity zdrojů. |
-b | Maximální velikost vyrovnávací paměti soketu. |
-c | Velikost výpisu jádra, vyjádřená počtem 512bajtových bloků. |
-d | Velikost datové oblasti v kilobajtech. |
-e | Nejvyšší priorita plánování procesů (pěkné). |
-f | Limit velikosti souboru v blocích při použití [limit] parametr. Není uveden [limit] dává příkazu, aby oznámil limit velikosti souboru. |
-i | Limit počtu čekajících signálů. |
-k | Limit počtu přidělených front. |
-l | Maximální povolená velikost pro uzamčení v paměti. |
-m | Velikost fyzické paměti v kilobajtech. |
-n | Maximální počet deskriptorů souborů, které může mít proces. |
-p | Velikost vyrovnávací paměti potrubí. |
-P | Maximální počet pseudoterminálů. |
-q | Maximální počet bajtů ve frontách zpráv POSIX. |
-r | Maximální počet vláken, které může mít proces. |
-R | Maximální doba běhu procesu vyjádřená v mikrosekundách. |
-s | Velikost zásobníku v kilobajtech. |
-t | Udává maximální dobu běhu procesu v sekundách. |
-T | Limit počtu vláken. |
-u | Udává, kolik procesů může uživatel vytvořit. |
-v | Maximální dostupná virtuální paměť pro procesy. |
-x | Maximální počet uzamčení souborů. |
[limit] Parametra
Přidání [limit] předá novou hodnotu pro zadané prostředky. Když je vynechán, příkaz vytiskne aktuální hodnotu měkkého limitu pro zadaný zdroj, pokud nezadáte -H vlajka.
Limit platí pro měkký i tvrdý limit, pokud ani -H ani -S jsou specifikovány příznaky.
Výstupní hodnoty
ulimit příkaz má dvě výstupní hodnoty:
0. Označuje úspěšné dokončení.>0. Požadavek na vyšší limit byl zamítnut nebo došlo k chybě.
Měkký limit
Limity měkkých prostředků jsou hodnoty vynucené jádrem pro odpovídající prostředek. Měkký limit může spravovat každý uživatel a jeho maximální hodnota nemůže překročit pevný limit. Pevný limit funguje jako strop pro měkký limit.
Chcete-li zobrazit podrobné měkké limity pro aktuálního uživatele, spusťte:
ulimit -Sa
Pevný limit
Pevný limit zdrojů definuje limit fyzického zdroje pro uživatele. Pevný limit je zároveň maximální hodnotou pro měkký limit. Pevný limit mohou změnit pouze uživatelé root .
Chcete-li zobrazit podrobné pevné limity pro aktuálního uživatele, spusťte:
ulimit -Ha
Jak používat ulimit
Spusťte ulimit příkaz zadáním názvu příkazu do terminálu:
ulimit
Výstup zobrazuje množství prostředků, ke kterým má aktuální uživatel přístup. V tomto příkladu má uživatel neomezené systémové prostředky. Chcete-li zobrazit nebo nastavit limity jednotlivých zdrojů, použijte dostupný ulimit příznaky.
Následující sekce uvádí nejběžnější použití ulimit příkaz.
Podrobná zpráva o limitu
Získejte podrobnou zprávu se všemi limity zdrojů pro aktuálního uživatele zadáním -a příznak:
ulimit -a
Výstup obsahuje podrobnou zprávu o limitech zdrojů pro aktuálního uživatele.
Omezit číslo procesu
Omezte maximální počet procesů uživatele zadáním -u příznak a počet procesů.
Například omezíme číslo procesu na 10:
ulimit -u 10 Omezení maximálního počtu procesů na uživatele jim zabrání ve využití všech prostředků systému. Omezení počtu procesů také zabrání nepříznivým účinkům potenciálních útoků, jako je vidlicová bomba.
Například:
Ve výše uvedeném příkladu jsme nejprve omezili číslo procesu na 10 a poté provedli vidlicovou bombu. Vidlicová bomba by jinak spotřebovala všechny zdroje a systém by přestal reagovat.
Omezit velikost souboru
-f flag nastavuje maximální velikost souboru, kterou může uživatel vytvořit. Například následující příkaz omezuje velikost souboru na 50 kB:
ulimit -f 50 Otestujte, zda limit funguje, vytvořením většího souboru. Například jsme použili příkaz cat k přesměrování /dev/zero výstup do souboru, který by byl mnohem větší než 50 kB:
Výstup uvádí, že byl překročen limit velikosti souboru. Zkontrolujte velikost souboru spuštěním:
ls -lh file
Výstup příkazu ls ukazuje, že velikost souboru je přesně 50 kB, což je limit, který jsme dříve nastavili.
Omezit maximální virtuální paměť
Použijte -v příznak pro nastavení maximální velikosti virtuální paměti dostupné pro proces. Omezení virtuální paměti procesu zabrání tomu, aby spotřeboval veškerou paměť, a zabrání tomu, aby byl proces vyhazován.
Například následující příkaz omezuje virtuální paměť dostupnou pro proces na 1000 kB:
ulimit -v 1000 Omezit počet otevřených souborů
-n příznak omezuje počet současně otevřených souborů (deskriptorů souborů). Následující příklad nastaví počet otevřených souborů na pět:
ulimit -n 5 Abychom to otestovali, pokusíme se otevřít více textových souborů, což vede k chybě:
Upravte soubor limited.conf na Změnit měkký nebo pevný limit
Chcete-li změnit měkký nebo pevný limit, upravte hodnoty v limits.conf soubor.
Postupujte podle následujících kroků:
1. Otevřete okno terminálu a změňte adresář na /etc/security :
cd /etc/security 2. Otevřete soubor limits.conf pomocí textového editoru, jako je editor vim.
vim limits.conf 3. Změňte limitní hodnoty úpravou stávajících záznamů nebo přidáním nového. Každá položka omezení má čtyři části:
<domain>. Definuje uživatele, skupinu nebo obsahuje zástupný znak (*nebo%).<type>. Přijímá dvě hodnoty -softnebohard.<item>. Přijímá libovolnou z hodnot uvedených v konfiguračním souboru.<value>. Celočíselná hodnota vyjádřená v jednotce spojené s<item>.
Například:
Při úpravě konfiguračního souboru nezapomeňte odkomentovat řádek.