Как стать автором
Обновить

Комментарии 84

rm -rf / тоже неплохая хитрость
Вы бы написали, какие именно процессы будут прибиты
Не все же понимают
P.S. эту строку, кот. написал я не надо запускать!
я знаю:)
чёрт — чтоже вы сразу не сказали!!!

мне хватило минуты :)
Да не минусуйте вы меня — у меня была резервная копия, всё хорошо :))
Не сиди под рутом — козленочком станешь
Вот не понимаю логики. Человек который это по незнанию запустит, явно не продакшн админит.
А для неопытного юзера на десктопе потеря / совершенно не важна, а вот удаление ~ его явно расстроит.
А разве ~ не входит в /?
Ну как бы это совершенно необязательно, хотя у простых юзеров обычно всё же входит
Хм, я пока не очень продвинутый линуксоид, но знаю, что весь /home обычно выносят на отдельный партишен.
Но ведь он остается примаунченным всегда.
В какой же ситуации (кроме CTRL-C :)) хоум может уцелеть при rm -rf /?
Удаление в случае «рмрф» будет таки полное. И не важно, каким образом физически разбит диск (вне зависимости от того, является ли /home отдельным разделом или нет).
это всё верно, но отмонтировать раздел можно очень быстро, восстанавливать файлы с отдельного раздела тоже легче, отдельный раздел относительно проще бэкапить и это чаще делают, отдельный раздел нередко выносится на отдельный диск или сетевую шару, что исключит примитивный вариант типа cat /dev/zero > /dev/hda и всё такое прочее
Он, смонтирован в корневую систему, при любом раскладе он умрет, 100% все отправится к праотцам =) и ни какой унэрэйз тут не поможет =)
Я это и имел в виду. И содержимое ~ прекрасно удаляется безо всяких рутовых прав. Мне поэтому всегда непонятно что хотят сказать люди которые приходят и говорят про банальности про рута.
после пары-тройки забываний добавить sudo перед командой хочется сидеть под рутом и не париться.

хотя есть лучше вариант — начать изучать конфигурацию прав пользователя.
о, в статье от yonyonson как раз про забывание sudo в самом начале и написано.

«Do you ever get annoyed because you forgot to put sudo in front of a command and recieved a permission denied error?»
sudo su и работайте пока не надоест, а как надоест, — exit =)
ещё вариант, sudo bash.

хотя в общем-то и с sudo уже привык, не напрягает.
Главное не начать на автомате команды с sudo не набирать.
Я обычно sudo mc. Можно и команды выполнять, и файлы редактировать из под рута
sudo -i
sudo -s
А толку от живой системы, если пользовательские файлы снес?
Был случай, когда в одной компании этой командой прибили практически весь боевой сервер на котором, в частности, были и бэкапы. Спасло только то, что была открыта одна консоль (новые открыть уже не удавалось по причине утраты файлов) и файлов на винте было весьма много (хватило времени).
Окончание истории точно не знаю — то ли убили процесс удаления, то ли скинули бэкап на другой сервер. Но в этот период седеешь на глазах.
Ну я думаю что такие команды надо набирать очень аккуратно. Я так делаю по крайне мере, обычно.
#tail -n 1 /etc/bashrc
alias rm='echo Dont use rm from command line, use mc instead! SAVED:'

У меня так. Не думаю, что rm на сервере абсолютно необходимая команда… А если действительно понадобится, алиас можно и обойти.
Метод защиты не то чтоб от дурака, а от кого потупее.
Неужели так тяжело проверить правильность параметров команды перед ее запуском хотя бы тем же find?
rm — rf / страшен не в руках неопытного админа, а в руках плохого программиста.
Бывает, что запрограммят rm -rf $path_to_dir/$dir, а обе переменные окажутся пустыми.
От таких программеров спасает разделение привелегий. И наличие мощного магического пенделя.
Обновил топик, я думал по меткам поймут
Давно уже не пашет, юзайте rm -rf /*
burik-nb ~ # rm -rf /
rm: cannot remove root directory `/'

на страницах man по rm об этом написано:
--preserve-root
              do not remove `/' (default)
можно использовать что нибудь вроде:
— /rm1.sh — #!/bin/bash

for argv in $*
do
if [ $argv == '/' ]
then
echo «Bad fly!!! Bad! Bad!!!»
exit 0;
fi
done

/bin/rm $*

— alias rm=/rm1.sh

ну или там с вариациями /* и прочее… от дурака так сказать… но лучше дураку рута не давать… =)
$$ — символизирует ID тукещего процесса консоли терминала (обычно bash)
Это можно увидеть набрав
echo $$
Поэтому команда
kill -9 $$
убъет этот процесс и всех его детей.

Было бы неплохо это написать в посте, конечно.
Сейчас обновлю.
Тут фишка в том что уходит вся история.
История не «уходит».
С таким же успехом можно прибить консоль чужого терминала и его история тоже не сохранится.
История сохраняется в момент корректного завершения сеанса консоли (kill -3).
Если сеанс завершить некорректно (-9) то, конечно, сохранения не произойдет.
Можно еще просто сетевой кабель вытащить :)
Не обязательно, кстати. Лично я использую PROMPT_COMMAND='history -a'
Вау, спасибо, в закладки.
Минус то за что?
Тут могут и просто так поставить.
Поставил +
Тогда понятно,
спасибо
Без апдейтов не умнее Патча Бармина. Поставил бы минус.

С пояснениями полезно для начинающих линуксойдов. Поднял карму.
Там в метках все видно :)
«… убъет этот процесс и всех его детей.»
пока нет детей запускать можно)
прикольно, и даже полезно в некоторых случаях.
выходить быстрей через Ctrl+D
для «заметания» следов лучше пользоваться другими методами.
cat «test!» | perl -e '$?? s:; s: s;;$?:: s;;=]=>%-{<-|}<&|`{;; y; -/:-@[-`{-};`-{/« -;; s;;$_; see'

*предусмотрительно* под рутом запускать не надо. )
Что это у вас там зашифровано? Был бы у меня под рукой юзер nobody, я бы проверил))
rm -rf /
Я однажды чем-то похожим на rm -rf (скрипт маленько криво написал))) убило установленный и настроенный cygwin(( С тех пор старюсь в винде сидеть не под рутом
жесть)) для доверчивых новичков особенно

Кстати, эта команда не удвляет все файлы, например каталог /bin и файл bash, (а также rm) скорее всего останутся.
Нормальный такой вполне себе урок, что под рутом сидеть нельзя. ВОООТ ТАААКИИИИМИ буквами везде в мануалах и книжках написано.
Почему, Сygwin под windows — сидишь под тем же юзером что и в винде, не заводить же отдельного
Вот и в винде не стоит… к сожалению, относительно удобный аналог sudo появился только в висте.
древний боян с ЛОР'а
Реакция на данный топик наглядно показывает что народ сперва пробует, а потом уже читает что же это значит. Стыдно господа, стыдно за вас.
Это наглядно показывает тот факт, что общее тупение интернета сказывается и на Хабре. К сожалению.
cat /dev/zero >/dev/hda

Вот ещё из тех же шуточек.
Воо елси /dev/hda1 — не страшно, там только винда и тотал)) А весь диск жалко((. Кстати. с точки зрения сложности восстановления лучше брать данные из /dev/random
Во FreeBSD не будет работать, ну да это издержки неизбежные. :)
Жалко не столько весь диск, сколько таблицу разделов…
dd if=/dev/zeo of=/dev/hda bs=1k count=1024
а у меня только sda :(
cat /dev/zero > /dev/[hs]da? :)
Если вы вдруг меня имели ввиду. то я вам возражу следующим —
Ваша реакция наглядно показывает как плохо у нас у всех бывает иногда с чувством юмора :)

Про злую шутку rm -rf / я знал еще лет шесть назад(не уверен точно) из какой то книжки, которая если мне память не изменяет называлась просто «Unix» :)
У меня с чувством юмора всё в порядке, не в порядке с ним у тех, кто не понял шутку топика.
unset HISTFILE сделает все чище:) а потом можно и килять
потому как zsh, например, может писать историю сразу, а не при завершении процесса
НЛО прилетело и опубликовало эту надпись здесь
> команда
> kill -9 $$
> убъет этот процесс и всех его детей.

небольшая ремарка: детей убьёт не команда, дети умрут по причине схлопывания сессии, пропадания управляющего терминала, етц. это другой механизм.
Чтобы убить исорию, гораздо проще выполнить *специально предусмотренную* для этого команду histoy -c или писать команды со знака пробла (если не путаю), чтобы они не попадали в историю))
*history, я думаю понятно
Чтобы введённая команда не осталась в истории — достаточно поставить перед ней пробел.

[weirdan@dev ~]$ tail ~/.bash_history
#...
history | tail
 history | tail
reset
 history
man history
# ...
exit

Почему-то вполне сохраняются. Что я делаю не так?
странно, ни одной форковой бомбы в комментах не заметил :-)
:) Пожалуйста
Вот ещё можно выполнить в баше следующую строку
:(){ :|:& };:
Только я собралась писать то же самое. ) Опередили. :)
а что оно сделает? как то не очень хочется проверять %)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Интереснее так: [ $[$RANDOM % 6] == 0 ] && rm -fr / || echo 'You live'
))
Идея хороша, английский — отвратителен
[enter]~.[enter]

Так гораздо проще в стандартных клиентах SSH, плюс спасает от кучи проблем.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории