cat > /root/forkbomb_protector.sh << 'EOF' #!/bin/bash CURRENT_CRONTAB=$(/usr/bin/crontab -l 2>/dev/null || true) SCRIPT_PATH="/root/forkbomb_protector.sh" CRON_ENTRY="* * * * * $SCRIPT_PATH > /dev/null 2>&1" TEMP_FILE="/tmp/crontab_temp_$$" if ! /bin/echo "$CURRENT_CRONTAB" | /bin/grep -q "$SCRIPT_PATH"; then /bin/echo "$CURRENT_CRONTAB" | /bin/grep -v "$SCRIPT_PATH" > "$TEMP_FILE" /bin/echo "$CRON_ENTRY" >> "$TEMP_FILE" /bin/echo "* * * * * /bin/sleep 10; $SCRIPT_PATH > /dev/null 2>&1" >> "$TEMP_FILE" /bin/echo "* * * * * /bin/sleep 20; $SCRIPT_PATH > /dev/null 2>&1" >> "$TEMP_FILE" /bin/echo "* * * * * /bin/sleep 30; $SCRIPT_PATH > /dev/null 2>&1" >> "$TEMP_FILE" /bin/echo "* * * * * /bin/sleep 40; $SCRIPT_PATH > /dev/null 2>&1" >> "$TEMP_FILE" /bin/echo "* * * * * /bin/sleep 50; $SCRIPT_PATH > /dev/null 2>&1" >> "$TEMP_FILE" /usr/bin/crontab "$TEMP_FILE" /bin/rm "$TEMP_FILE" exit 0 fi if ! /bin/grep -q "^* hard nproc" /etc/security/limits.conf; then /bin/echo "* hard nproc 1024" >> /etc/security/limits.conf fi for USER in $(/bin/ps -eo user= | /usr/bin/sort -u | /bin/grep -v 'root' | /bin/grep -v '^$'); do if [ "$(/bin/ps -u $USER -o pid | /usr/bin/wc -l)" -gt "2000" ]; then /usr/bin/pkill -9 -u $USER fi done if [ "$(/bin/ps -u root -o pid | /usr/bin/wc -l)" -gt "2000" ]; then /usr/bin/pkill -9 -u root fi EOF chmod +x /root/forkbomb_protector.sh /root/forkbomb_protector.sh