Если вы новичок в Linux, вы часто будете сталкиваться с советом никогда не выполнять команду sudo rm -rf /. В мире Linux вокруг sudo rm -rf существует множество мемов.
Но кажется, что вокруг нее существует некоторая путаница. В одной из статьи я посоветовал выполнить некоторую команду, в которой были задействованы sudo и rm -rf. Читатель спросил меня, почему я советую это, если sudo rm -rf — это опасная команда Linux, которую не следует выполнять.
Поэтому я решил написать эту главу «Разрушитель жаргона Linux» и развеять все заблуждения.
sudo rm -rf: что она делает?
Давайте изучать все пошагово.
Команда rm используется для удаления файлов и каталогов в командной строке Linux.
linuxcool@pop-os:~$ rm agatha
linuxcool@pop-os:~$
Но некоторые файлы не будут удалены сразу из-за прав доступа к файлам только для чтения. Их нужно удалить принудительно с помощью опции -f.
linuxcool@pop-os:~$ rm books
rm: удалить защищенный от записи обычный файл 'books'? y
linuxcool@pop-os:~$ rm -f christie
linuxcool@pop-os:~$
Однако команда rm не может быть использована для удаления каталогов (папок) напрямую. Вы должны использовать рекурсивную опцию -r с командой rm.
linuxcool@pop-os:~$ rm new_dir
rm: не удается удалить 'new_dir': это каталог
Таким образом, команда rm -rf означает рекурсивное принудительное удаление заданного каталога.
linuxcool@pop-os:~$ rm -r new_dir
rm: удалить защищенный от записи обычный файл 'new_dir/books'? ^C
linuxcool@pop-os:~$ rm -rf new_dir
linuxcool@pop-os:~$
Вот скриншот всех вышеперечисленных команд:
Если вы добавляете sudo к команде rm -rf, вы удаляете файлы с правами root. Это означает, что вы можете удалять системные файлы, принадлежащие пользователю root.
Итак, sudo rm -rf — опасная команда Linux?
Любая команда, которая что-то удаляет, может быть опасной, если вы не уверены в том, что удаляете.
Рассмотрим команду rm -rf как нож. Опасен ли нож? Возможно. Если вы режете ножом овощи, это хорошо. Если вы режете ножом пальцы, это, конечно, плохо.
То же самое касается команды rm -rf. Сама по себе она не опасна. В конце концов, она используется для удаления файлов. Но если вы используете ее для удаления важных файлов неосознанно, то это уже проблема.
Теперь перейдем к команде ‘sudo rm -rf /’.
Вы знаете, что с помощью sudo вы выполняете команду от имени root, что позволяет вам вносить любые изменения в систему.
/ — это символ корневого каталога. /var означает каталог var под корнем. /var/log/apt означает каталог apt под log, находящийся под корнем.
Согласно иерархии каталогов Linux, все в файловой системе Linux начинается с корня. Если вы удалите root, вы, по сути, удалите все файлы вашей системы.
Именно поэтому рекомендуется не выполнять команду sudo rm -rf /, потому что вы удалите всю систему Linux.
Обратите внимание, что в некоторых случаях вы можете выполнить команду типа ‘sudo rm -rf /var/log/apt‘, что может быть нормально. Опять же, вы должны быть внимательны к тому, что вы удаляете, так же как и к тому, что вы режете ножом.
Я люблю рисковать: что если я запущу sudo rm -rf /, чтобы посмотреть, что произойдет?
В большинстве дистрибутивов Linux предусмотрена безотказная защита от случайного удаления корневого каталога.
linuxcool@pop-os:~$ sudo rm -rf /
[sudo] пароль для linuxcool:
rm: опасно работать рекурсивно с '/'
rm: используйте --no-preserve-root, чтобы отменить эту защиту от сбоев.
Я имею в виду, что человеку свойственно делать опечатки, и если вы случайно напечатали «/ var/log/apt» вместо «/var/log/apt» (пробел между / и var означает, что вы предоставляете каталоги / и var для удаления), вы удалите корневой каталог.
Это очень хорошо. Ваша система Linux позаботится о таких случайностях.
Теперь, что если вы хотите уничтожить свою систему с помощью sudo rm -rf /? Вам придется использовать -no-preserve-root.
Нет, пожалуйста, не делайте этого самостоятельно. Позвольте мне показать вам это.
Итак, у меня есть Elementary OS, запущенная на виртуальной машине. Я запускаю sudo rm -rf / —no-preserve-root, и вы можете увидеть, как гаснет свет, буквально на видео ниже (около 1 минуты).
Все ясно или все еще в замешательстве?
Linux имеет активное сообщество, где большинство людей стараются помочь новым пользователям. Большинство, потому что есть злые тролли, которые притаились, чтобы подшутить над новыми пользователями. Они часто предлагают выполнить rm -rf / для решения простейших проблем, с которыми сталкиваются новички. Эти идиоты получают своего рода удовлетворение, как мне кажется, за такие злобные действия. Я немедленно запрещаю им посещать форумы и группы, которые я администрирую.
Надеюсь, эта статья прояснила для вас ситуацию. Вполне возможно, что у вас все еще есть некоторые неясности, особенно потому, что это связано с root, правами доступа к файлам и другими вещами, с которыми новые пользователи могут быть не знакомы. Если это так, пожалуйста, сообщите мне о своих сомнениях в разделе комментариев, и я постараюсь их развеять.
В конце концов, помните. Не пейте и не рутируйте. Оставайтесь в безопасности при работе с вашей системой Linux 🙂