Флаг preserve-root для команды rm
Перевод: Unix/Linux tutorials for beginners preserve-root flag for rm command
Флаг preserve-root
Команда rm, используемая для удаления файлов и каталогов, может быть очень опасной, если запускать её с привилегиями супер-пользователя root. Приятно осознавать, что большинство современных реализаций команды rm помогают предотвратить катастрофу (удаление всей информации на вашем диске).
Что делает флаг preserve-root
Поведение rm по умолчанию в системах Linux означает включение флага preserve-root – это опция, защищающая корневую (root, /) файловую систему от удаления. При попытке удаления этого верхнего уровня файловой системы, вы получите предупреждение:
Почему сообщение говорит, что рекурсивное удаление в разделе / опасно? Потому что абсолютно все каталоги и другие файловые системы в Unix и Linux монтируются как ветки дерева /. То есть они являются подкаталогами, удалив которые рекурсивно вы можете стереть всю информацию, доступную на вашем системном разделе (и довольно большой объём других подмонтированных и активных файловых систем, если уж совсем не повезло).
Я-то запустил команду из-под обычного пользователя, так что тотальной катастрофы бы не получилось. Но под пользователем root такая команда могла бы кончиться довольно скверно.
Почему preserve-root это реально круто
Ясное дело, что сознательно мало кто будет планировать удалять все файлы из корневого каталога /, но вот вам очень типичный пример ошибки, допускаемой новичками: использование не инициализированных (нулевого значения) переменных:
Казалось бы, всё правильно: у меня есть переменная $MYDIR, у неё есть какое-то значение – оно указывает на каталог. Я запускаю команду rm и указывают ей в качестве параметра мою переменную MYDIR.
Но вот если переменная MYDIR не имеет значения (забыли её создать), то наша команда превратится вот во что:
Так что опция –preserve-root – прямо-таки спасение.
Также в тему
Флаг preserve-root
Команда rm, используемая для удаления файлов и каталогов, может быть очень опасной, если запускать её с привилегиями супер-пользователя root. Приятно осознавать, что большинство современных реализаций команды rm помогают предотвратить катастрофу (удаление всей информации на вашем диске).
Что делает флаг preserve-root
Поведение rm по умолчанию в системах Linux означает включение флага preserve-root – это опция, защищающая корневую (root, /) файловую систему от удаления. При попытке удаления этого верхнего уровня файловой системы, вы получите предупреждение:
Почему сообщение говорит, что рекурсивное удаление в разделе / опасно? Потому что абсолютно все каталоги и другие файловые системы в Unix и Linux монтируются как ветки дерева /. То есть они являются подкаталогами, удалив которые рекурсивно вы можете стереть всю информацию, доступную на вашем системном разделе (и довольно большой объём других подмонтированных и активных файловых систем, если уж совсем не повезло).
Я-то запустил команду из-под обычного пользователя, так что тотальной катастрофы бы не получилось. Но под пользователем root такая команда могла бы кончиться довольно скверно.
Почему preserve-root это реально круто
Ясное дело, что сознательно мало кто будет планировать удалять все файлы из корневого каталога /, но вот вам очень типичный пример ошибки, допускаемой новичками: использование не инициализированных (нулевого значения) переменных:
Казалось бы, всё правильно: у меня есть переменная $MYDIR, у неё есть какое-то значение – оно указывает на каталог. Я запускаю команду rm и указывают ей в качестве параметра мою переменную MYDIR.
Но вот если переменная MYDIR не имеет значения (забыли её создать), то наша команда превратится вот во что:
Так что опция –preserve-root – прямо-таки спасение.