Команда rm -rf / является довольно популярной в узких кругах. Но не потому, что ей постоянно пользуются, а наоборот. Это что-то вроде шутки у заядлых линуксоидов.
Все, что вы прочитаете ниже, написано только в информационных целях, не повторяйте этого на своем компьютере.
Команда rm -rf /, выполненная от имени суперпользователя, уничтожит все данные с корневого раздела диска.
Ключ -r используется для того, чтобы выполнять рекурсивный обход всех директорий.
Ключ -f — force — не запрашивать никаких подтверждений.
Если выполнить эту команду в терминале, а именно выполнить:
sudo rm -rf /
то появится предупреждение о том, что выполнение команды опасно:
rm: опасно рекурсивно обрабатывать '/'
rm: используйте --no-preserve-root, чтобы отменить предупреждение об опасности
Таким образом программа rm защищает сама себя от плохих действий. Но сразу же сообщает нам, что мы можем использовать ключ --no-preserve-root, чтобы обойти это предупреждение.
Если выполнить команду:
sudo rm --no-preserve-root -rf /
то все данные с корневого раздела диска будут удалены!
Иногда данная команда используется, чтобы «подшутить» над новичками в Linux. Некоторые пользователи на форумах советуют «чайникам» выполнить данную команду, чтобы решить свои проблемы. Чтобы шутка удалась, саму команду иногда маскируют, например, вставляют ее внутрь другой длинной команды, чтобы она не так выделялась.
Процесс работы rm -rf / примерно следующий:
- Команда выполняется от имени суперпользователя.
- Копия программы rm загружается в оперативную память.
- Программа rm начинает удаление всех файлов с корневого раздела /.
- Во время удаления файлов программа rm в какой-то момент удаляет и саму себя (исполняемый файл программы, файл /bin/rm). Но так как копия программы находится в оперативной памяти, то она продолжает работать, не смотря на то, что исполняемый файл уже удален.
- Когда удаление файлов завершено, программа rm выгружается из оперативной памяти.
- На данном этапе в памяти находятся только те программы, которые уже были там до выполнения команды rm (например, ядро, драйвера, окно терминала и так далее).
Очень важный момент, который нужно учитывать. Современные UEFI системы монтируют директорию с прошивками в директорию /sys. Так как rm удаляет все файлы и с примонтированных разделов, то прошивки также будут удалены. Таким образом можно получить не только неработающую систему, но и неработающий компьютер. Будьте внимательны.
Видео: выполнение команды rm -rf / на реальной системе Linux
19.12.2018 yuriy