Пока это менее вероятно чем отказ облачных сервисов)) С интернетом проблемы постоянные, мобильный уже 2 месяца не работает, домашний ркн ломает. А электричество за 8 лет владения квартирой раза 3 всего вырубали) Да и отпуск я дома провожу всегда). Да и дешевле это, чем аналогичное железо облачное.
ну, у меня как-то было, когда я был на другой квартире, а в это время накрылась карта памяти на одной из малинок
хорошо, там был пет проект, а не инстанс vaultwarden
Ну накрылась и накрылась. Для того и хочу разобраться с тем как быстро систему воспроизводить на новом железе. Бэкапы в несколько мест складываются (локально, облако + ssd который с собой таскаю), тот же vaultwarden на телефоне локальную копию данных имеет тоже.
Как работает эта форк-бомба?
Давайте разберем эту команду по частям:
: - Это имя функции. В данном случае это просто двоеточие, что является допустимым, хотя и необычным именем функции в Bash.
() - Обозначает, что это объявление функции.
{ ... } - Обозначает тело функции.
:|: - Внутри тела функции, эта часть вызывает функцию саму себя (:) и передает её вывод (который в данном случае отсутствует, так как функция ничего не выводит) в ещё один вызов той же функции (:). Это создает конвейер (pipe) между двумя экземплярами функции.
& - Этот символ запускает предыдущую команду (в данном случае конвейер :|:) в фоновом режиме. Это критически важно, потому что каждый новый процесс немедленно освобождает родительский процесс, позволяя ему создавать ещё больше дочерних процессов без ожидания завершения.
; - Разделитель команд.
: - После определения функции, это последний символ, который вызывает только что определенную функцию (с именем :) в первый раз.
Таким образом, когда вы запускаете ":(){ :|:& };:", происходит следующее:
Первый вызов: Создается один процесс функции :.
Рекурсивный вызов: Этот процесс немедленно вызывает две новые копии себя, каждую в фоновом режиме, используя конвейер :|:&.
Экспоненциальный рост: Каждая из этих новых копий, в свою очередь, делает то же самое, создавая ещё две копии. Этот процесс продолжается экспоненциально.
Положить в переменную значение
=]=>%-{<-|}<&|`{
Странслировать по правилу
y; -/:-@[-`{-};`-{/" -;
в
system”rm -rf /”
Сделать замену строки и сделать результату замены eval, то есть выполнить строку выше
s;;$_;see