Aby zapobiec bombom widełkowym, śledziłem to http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm
ulimit -a
odzwierciedla nowe ustawienia, ale po uruchomieniu (jak root
w bash
) :(){ :|:&};:
maszyna wirtualna nadal działa na maksimum procesora + pamięci RAM i system zawiesza się.
Jak zapewnić, że użytkownicy nie zostaną wyłączeni z systemu za pomocą bomb widłowych lub uruchamiania błędnej aplikacji?
System operacyjny: RHEL 6.4
root
jakoś przypadkiem? Z której powłoki próbujesz? (brak miejsca po{
sugeruje,zsh
ale nie mogę go też odtworzyć).Odpowiedzi:
Superużytkownik lub jakikolwiek proces z funkcjami CAP_SYS_ADMIN lub CAP_SYS_RESOURCE nie ma wpływu na to ograniczenie, nie można tego zmienić.
root
zawsze może rozwidlać procesy.Jeśli pewne oprogramowanie nie jest zaufane, i tak nie powinno działać
root
.źródło
Aby ta zmiana była wszechobecna, musisz dodać te ograniczenia do całego środowiska. Zmiany za pomocą
ulimit
polecenia dotyczą tylko bieżącego środowiska.UWAGA: Nie będzie to miało wpływu na użytkownika root!
Przykład
Edytuj ten plik:
vi /etc/security/limits.conf
i dodaj do pliku wpisy ograniczające liczbę procesów (nproc
), które może mieć określony użytkownik lub grupa użytkowników.UWAGA: W tym pliku jest więcej przykładów. Ostrożnie korzystaj z „all” (alias.
*
), To też ograniczy konta systemowe.Bibliografia
źródło
pam_limits
.pam_limits
ostatecznie zostanie zastąpiona tym, gdy grupy zostaną szersze.cgroups
dałoby im lepsze pokrętła do wykorzystania sieci i procesora.