Tento příspěvek popisuje, jak může správce systému Linux omezit povolený počet procesů pro každého uživatele operačního systému. Existují dvě místa, kde je povolen maximální počet procesů (nproc ) lze konfigurovat.
- /etc/security/limits.conf
- /etc/security/limits.d/90-nproc.conf (CentOS/RHEL 5,6) a /etc/security/limits.d/20-nproc.conf (CentOS/RHEL 7)
z manuálové stránky pam_limits
Ve výchozím nastavení jsou limity převzaty z /etc/security/limits.conf konfigurační soubor. Poté jednotlivé soubory *.conf z /etc/security/limits.d/ adresář jsou načteny. Soubory jsou analyzovány jeden po druhém v pořadí „C“ národního prostředí. Efekt jednotlivých souborů je stejný, jako kdyby byly všechny soubory zřetězeny dohromady v pořadí analýzy. Pokud je konfigurační soubor explicitně specifikován s možností modulu, pak soubory ve výše uvedeném adresáři nejsou analyzovány.Zobrazení aktuálních měkkých/tvrdých limitů nproc
Systém Red Hat Enterprise Linux používá k definování limitů dva typy hodnot:soft a tvrdé . Rozdíl je v tom, že „měkký“ limit lze upravit až na „tvrdý“ limit, zatímco „tvrdý“ limit lze pouze snížit a je to maximální limit zdrojů, který může uživatel mít.
Kdykoli uživatel spustí příkaz „ulimit -n“, zobrazí se mu „měkký“ limit. Pokud má tedy soubor ‚/etc/security/limits.conf‘ nastavenou pevnou hodnotu, nebude ve výchozím nastavení prezentován.
– Chcete-li zobrazit měkké limity, použijte níže uvedený příkaz:
# ulimit -u -S
– Podobně pro zobrazení pevných limitů použijte níže uvedený příkaz:
# ulimit -u -H
Jak nastavit limity nproc (Hard and Soft)
1. Nastavení měkkých limitů nproc dočasně
„Měkký“ limit lze upravit na „tvrdý“ limit s níže uvedeným, kde N je menší nebo rovno „tvrdému“ limitu.
# ulimit -n N
Například:
# ulimit -n 1024
Výše uvedená hodnota není trvalá a nebude přetrvávat při opětovném přihlášení. Výše uvedený příkaz můžete zadat do uživatelského profilu bash, takže limit bude nastaven při každém přihlášení uživatele.
# vim ~/.bash_profile ulimit -n 1024
2. Nastavení nproc hard/soft limitů trvale
– Chcete-li nastavit limit nproc na neomezeně celý systém, použijte soubor /etc/security/limits.d/90-nproc.conf (RHEL5, RHEL6), /etc/security/limits.d/20-nproc. conf (RHEL7) by měl číst. Ve výchozím nastavení se pravidla čtou ze souboru/etc/security/limits.conf.
– Navíc můžete v adresáři /etc/security/limits.d vytvořit individuální konfigurační soubory speciálně pro určité aplikace nebo služby.
– Výchozí limit uživatelských procesů je definován v souboru /etc/security/limits.d/90-nproc.conf (RHEL5, RHEL6), /etc/security/limits.d/20-nproc.conf (RHEL7), aby se zabránilo škodlivým útokům odepření služby, jako jsou vidlicové bomby.
Chcete-li nastavit pevný/měkký limit nproc, použijte níže uvedenou syntaxi.
# vi /etc/security/limits.conf [domain] [type] [item] [value]
Zde,
[doména] může být uživatelské jméno, název skupiny nebo zástupný znak.
[type] označuje typ limity a může mít následující hodnoty:
- měkké :Toto je měkký limit, který může uživatel změnit
- tvrdé :Toto je omezení měkkého limitu nastavené superuživatelem a vynucené jádrem
[položka] je zdroj, pro který se má nastavit limit.
Příklady nastavení limitů nproc
Níže je uvedeno několik příkladů nastavení hodnot nproc pomocí souborů /etc/security/limits.conf a /etc/security/limits.d/90-nproc.conf (RHEL5, RHEL6), /etc/security/limits. d/20-nproc.conf (RHEL7):
1. V níže uvedeném příkladu je limit nproc nastaven na 2047, protože v limitech.conf je pevný limit 2047
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 2047 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 root soft nproc unlimited test soft nproc 10023
# ulimit -u 2047
2. Zde je použito 1022, protože poslední položka je „test soft nproc 1022“, maximální pevný limit by byl „1025“.
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 2048 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1025 test soft nproc 1022
# ulimit -u 1022
3. Zde se používá 1025, protože je nastaveno „test hard nproc 1025“, „test soft nproc 1066“ se používá, protože měkký limit překračuje pevný limit.
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 1001 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1025 test soft nproc 1066
# ulimit -u 1025
4. Zde je použito 1066, protože poslední položka je „test soft nproc 1066“ a 1066 nepřekračuje pevný limit.
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 1001 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1100 test soft nproc 1066
# ulimit -u 1066Vysvětlení souboru /etc/security/limits.conf