Modyfikując, możesz łatwo ograniczyć liczbę procesów, które mogą zostać uruchomione w Ubuntu i większości innych dystrybucji Linuksa /etc/security/limits.conf
sudoedit /etc/security/limits.conf
Następnie dodaj ten wiersz na dole tego pliku:
* hard nproc nnn
gdzie:
hard
ustawia limit na poziomie jądra, dzięki czemu nie można go zmienić bez ponownego uruchomienia.
nproc
to maksymalna liczba procesów na użytkownika.
nnn
to liczba, którą należy obliczyć dla swojego systemu:
ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1
Powyższe polecenie wyświetli listę wszystkich procesów dla wszystkich użytkowników, w tym wątków , zsumuje je i wyświetli nazwę użytkownika z największą liczbą procesów. Aby być bezpiecznym, przed uruchomieniem powyższej komendy otwórz tyle aplikacji, ile zwykle potrzebujesz, a następnie podwoj tę liczbę dla bezpieczeństwa.
Po wprowadzeniu tego limitu konieczne będzie ponowne uruchomienie komputera, ale będzie to miało wpływ na każdego użytkownika innego niż root w systemie. Więc jeśli bomba rozwidlona zostanie wykonana przez użytkownika innego niż root, będzie miała ten twardy limit.
Limity grup i symboli zastępczych domyślnie nie dotyczą użytkownika root . Użyj literalnej nazwy użytkownika root
w regułach, jeśli chcesz zastosować regułę do administratora.
Ponadto, jeśli nie chcesz w najbliższym czasie zrestartować, możesz użyć tej opcji, sudo ulimit -u 800
która ograniczy tylko sesję, ale można ją łatwo obejść za pomocą bomby widelcowej z sudo
uprawnieniami!
Po ponownym uruchomieniu wszystko, co jest w /etc/security/limits.conf
środku, zostanie użyte.
Kilka dodatkowych informacji o bombach widełkowych: nie są złośliwym oprogramowaniem ani niczym strasznym. Zwykle składają się z czegoś tak podstawowego jak skrypt, który wywołuje się dwukrotnie, zwiększając w ten sposób wykładniczo swoją obecność na komputerze. Mimo że zajmują niewiele miejsca w pamięci, biorąc pod uwagę ich szybkie tempo, wielokrotnie, szybko zapełniają całą dostępną pamięć RAM, a urządzenie zawiesza się lub restartuje. Jedynym niebezpieczeństwem jest utrata niezapisanych informacji. Sklasyfikowałbym widełki bardziej jako dowcip niż złośliwe oprogramowanie.
Ważne przypomnienie:
Rzadko powinieneś kiedykolwiek wykonywać cokolwiek w wierszu poleceń, gdy nie jesteś pewien 98% jego działania. Jeśli nie możesz odczytać wykonywanych poleceń - nie rób tego. Odnosi się to podwójnie do nieczytelnych fragmentów znaków szesnastkowych / base64, które można wykorzystać do zaciemnienia wszelkiego rodzaju paskudności. Jeśli nie masz pewności co do polecenia, zawsze możesz wyszukać jego działania na stronach Ubuntu i zachować dodatkową ostrożność podczas korzystania z niego, sudo
ponieważ zostanie ono wykonane jako użytkownik root.
alias ":(){ :|: & };:"="echo 'No.'"
do mojego.bashrc
- czy wykona każde logowanie?Prostym sposobem, który lubię, jest utworzenie aliasu, chociaż aliasy nie zawsze są stosowane, sprawdź odpowiedź powyżej.
Teraz
źródło
a(){ a|a & };a
? (czy jakakolwiek inna nazwa funkcji?)