Что такое sudo rm -rf? Почему это опасно?

sudo rm rf

Если вы новичок в Linux, вы часто будете сталкиваться с советом никогда не выполнять команду sudo rm -rf /. В мире Linux вокруг sudo rm -rf существует множество мемов.

Но кажется, что вокруг нее существует некоторая путаница. В одной из статьи я посоветовал выполнить некоторую команду, в которой были задействованы sudo и rm -rf. Читатель  спросил меня, почему я советую это, если sudo rm -rf – это опасная команда Linux, которую не следует выполнять.

sudo rm rf
sudo rm rf

Поэтому я решил написать эту главу “Разрушитель жаргона 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:~$

Вот скриншот всех вышеперечисленных команд:

snimok ekrana ot 2021 09 02 21 12 58

Если вы добавляете 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 directory structure

Согласно иерархии каталогов Linux, все в файловой системе Linux начинается с корня. Если вы удалите root, вы, по сути, удалите все файлы вашей системы.

Именно поэтому рекомендуется не выполнять команду sudo rm -rf /, потому что вы удалите всю систему Linux.

Обратите внимание, что в некоторых случаях вы можете выполнить команду типа ‘sudo rm -rf /var/log/apt‘, что может быть нормально. Опять же, вы должны быть внимательны к тому, что вы удаляете, так же как и к тому, что вы режете ножом.

Прочтите:  PinePhone Pro - доступный флагманский смартфон с Linux, который может заменить ваш Android

Я люблю рисковать: что если я запущу 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 для удаления), вы удалите корневой каталог.

snimok ekrana ot 2021 09 02 21 19 02

Это очень хорошо. Ваша система Linux позаботится о таких случайностях.

Теперь, что если вы хотите уничтожить свою систему с помощью sudo rm -rf /? Вам придется использовать -no-preserve-root.

Нет, пожалуйста, не делайте этого самостоятельно. Позвольте мне показать вам это.

Итак, у меня есть Elementary OS, запущенная на виртуальной машине. Я запускаю sudo rm -rf / –no-preserve-root, и вы можете увидеть, как гаснет свет, буквально на видео ниже (около 1 минуты).

Все ясно или все еще в замешательстве?

Linux имеет активное сообщество, где большинство людей стараются помочь новым пользователям. Большинство, потому что есть злые тролли, которые притаились, чтобы подшутить над новыми пользователями. Они часто предлагают выполнить rm -rf / для решения простейших проблем, с которыми сталкиваются новички. Эти идиоты получают своего рода удовлетворение, как мне кажется, за такие злобные действия. Я немедленно запрещаю им посещать форумы и группы, которые я администрирую.

Надеюсь, эта статья прояснила для вас ситуацию. Вполне возможно, что у вас все еще есть некоторые неясности, особенно потому, что это связано с root, правами доступа к файлам и другими вещами, с которыми новые пользователи могут быть не знакомы. Если это так, пожалуйста, сообщите мне о своих сомнениях в разделе комментариев, и я постараюсь их развеять.

В конце концов, помните. Не пейте и не рутируйте. Оставайтесь в безопасности при работе с вашей системой Linux :)

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
LinuxCool.net