Ale notak. Já myslim že zrovna tohle je potřeba nějak rozšířit – už jen to „# rm -rf cesta/.*“ mě docela dostalo, podle mojí logiky to smaže všechny skrytý adresáře a nikdy by mě nenapadlo že to může i něco víc…a to jsem se zrovna tohle chystal nedávno použít.
Napadlo mě že bych zkusil ten hdparm – mám 160GB disk co se sám od sebe zastavuje, potom ještě přežil pár pádů a nevim co s nim (funguje, i když skleroticky). Jestli se mi povede sehnat jumper (poslední dobou o ně mám docela nouzi, nejradši bych koupil krabičku po tak 50 nebo 100 kusech) a ten disk má možnost tvářit se jako 32GB…tak jdu do toho. Samozřejmě po prostudování co ten disk čeká. Možná by neuškodilo spustit to z LiveCD a ten disk si otevřít a sledovat :)
Řešení je pustit tolik realtimových procesů, kolik je procesorů, pak žádný jiný proces nebude moct běžet, a zabíjet to můžeš v klidu.
Další možnost je su na toho uživatele a pak kill –9 –1, problém je, že ti ta uživatelova fork bomba tohle může detekovat a zabít dřív než bude sama zabita.
Ten test, zda je zakázáno někoho zabít je takhle:
cred = current_cred();
tcred = __task_cred(t);
if (!same_thread_group(current, t) &&
(cred->euid ^ tcred->suid) &&
(cred->euid ^ tcred->uid) &&
(cred->uid ^ tcred->suid) &&
(cred->uid ^ tcred->uid) &&
!capable(CAP_KILL)) {
Takže když si nastavíš euid na id uživatele a uid na nějakou nesmyslnou hodnotu, tak docílíš toho, že všechny procesy uživatele můžeš zabít, zatímco on tebe zabít nemůže.
Kdysi jsem narazil na .zip soubor co obsahoval jeden obrázek a jeden .zip soubor, pro rozbalení toho vnitřního zipka na mě vykouknul zase ten obrázek a zase jedna zipka a tak pořád dokola (-:
Odkaz: ZIP File Quine.
je prakticka aplikace:
$ bzip2 –9 < /dev/zero > /dev/null &
Spoustime tolikrat, kolik mame jader. Pred lety na dvouprocesorovem Celeru to zvysilo odezvu „nezatizeneho“ systemu na minuty diky vestavene ochrane intelu proti prehrati ;-) Dodnes pouzivame pri overovani schopnosti pocitace se uchladit.
Mno mozna tem co by chteli neco podobneho zkusit protoze jim to doporucil znamej. Viz. tel link na Lamer s tim rm -rf /. A rovnez dava predstavu ze spoustet nejaky neznamy skript stazeny od nekohosi z internetu jako root muze predstavovat bezpecnostni riziko pro cely system. Nekteri proste neuveri dokud neuvidi :-)
dost dlho som hladal kym som nasiel rekurzivny skript…skoda ze unzip taku moznost nema :(
http://www.dbforums.com/unix-shell-scripts/1619154-how-unzip-files-recursively.html
ja na to 42.zip sel ve windows winrarem
rozbaloval a rozbaloval a rozbaloval
dostal jsem ve vysledku soubor o velikosti necelých 3,9 GB
jeho obsahem je neuvěřitelné množství těchto znaků „ŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞ“ bez uvozovek
Tolik k obsahu archivu.
PS: musel jsem vypnout avast, bo už při pokusu o stažení řval, že se jedná o dekompresní bombu
Ale vzdyt je porad dokola tady tento argument. Ja nejsem pan Krcmar (sefredaktor) ani editor na rootu, pres ktereho by clanek s touto chybkou nemel jit ven, nebo by mela byt co nejdrive opravena. Proste jen trosku zvysit uroven. Hned na me nervete. Co se tyce obsahu tak pohoda. Sem upozornil na preklep a v te souvislosti na kvalitu. Novinar je novinar, diskuter je diskuter, oddelmne to prosim. Az budu psat clanek, tak si ho poradne zkontroluji nez pujde ven aby byl korektni nejen obsahove ale i gramaticky.
V počítači toho lze softwarově zničit mnohem víc.
Například RAM jde vyřadit z provozu přepsáním konfigurační EEPROM. Neznáte-li původní obsah, paměť se nerozjede. Stejnou metodou lze vyřadit z provozu i mnohé síťovky (v Intelu vědí) nebo bezdrátové karty (PDA záznam Prism karet). Routery jdou zase odstavit nevhodným nastavením switche (vlastní zkušenost s routerem od Asusu).
Bluetooth lze zničit přepnutím komunikace z USB třeba na nevyvedený sériový port, a pojistit to nastavením nesmyslné přenosové rychlosti (voláte-li bccmd, raději si dvakrát přečtěte argumenty). Mnoho hardwaru (GPS, skenery, tiskárny) zase obsahuje programovatelné USB<->sériové čipy nebo USB<->paralelní čipy. Ty lze přeprogramovat tak, aby se zbytkem hardwaru nekomunikovaly (režim bit-banging).
Má-li vaše zařízení USB OTG, můžete zase zkoušet hraním s GPIO pustit napájení v USB do zkratu. Obecně ovšem jakýkoliv SoC čip nemusí přežít přepnutí všech vstupních GPIO na výstupní, a nastavení přesně opačné úrovně, než která na onom vstupu je.
A což teprve máte-li zařizení se softwarovým řízením nabíjení. Stačí zapnout nejvyšší proud a odpojit teplotní čidlo, a při troše snahy lze pak Li-Ion článek použít jako roznětku. (Výrobci se ale často jistí hardwarovou pojistkou.)
Zapsáním špatného firmwaru je metodou tak známou (zvlášť v Mandrivě), že mnohá zařízení mají pro jistotu ještě záložní systém, který umí alespoň zapsat nový firmware.
Článek by vyžadoval nějaký ten hardware ke zničení a čas na testování. Raději se budu věnovat něčemu konstruktivnímu. Zde jsou alespoň nápovědy:
RAM: Ke každé RAM je připojena malá I2C eeprom, ve které jsou důležité údaje, jako např. způsob zápisu a časování. Ve zdrojácích lm-sensors najdetetestovací program k jeho čtení. Na virtuální zničení paměti stačí tuto paměť přepsat. Bez zálohy je malá šance to rozchodit.
Síťovky: Studiem známé chyby, která ničila síťové karty od Intelu se jistě dozvíte, jak přepsat jejich základní firmware. Dnes už to není až tak kritické, v Intelu vyvinuli metodu, jak mrtvou kartu oživit. Pro jiné karty to však jít nemusí.
WLAN: Například pro Prism2 karty lze PDA záznam přepsat pomocí prism2_srec.
Routery ASUS lze odstavit špatným přepsáním konfigurační sekce. Pokud označíte všechny porty na routeru jako WAN, a zapíšete to do konfiguračního flash registru, router sice jede, ale je nemožné se k němu dostat, ani zapsat nový firmware (TFTP downloader konfiguruje síť právě podle této flash). Zachránit to lze pomocí sériového portu. Pokud si ale zkompilujete vlastní kernel, kde odemknete MTD partition zavaděče, a pak spustíte obligátní cat /dev/zero >/dev/mtdblock0, už vám sériový port nepomůže. Pouze připájet JTAG. U zařízení bez JTAG je to však fatální.
Bluetooth: http://www.penguin.cz/~utx/zaurus/www.iral.com/~albertr/linux/psion5mx/blue/ Stačí si vybrat dostatečně nesmyslná čísla. Má-li dongle vyvedené SPI (většinou nemá), lze dongle oživit specializovanými nástroji od CSR, nemá-li, můžete ho hodit do koše.
USB OTG má tři stavy: nic (napájení vypnuto, žádný provoz), klient (napájení vypnuto, provoz jako klient), host (detekuje se podle propojky na pátém pinu, napájení zapnuto, provoz jako USB host). Na detekci se používají tři GPIO. Pokud zapnete napájení v režimu klient, pošlete do zkratu 5V zdroje klienta a OTG zařízení. To může podle konstrukce pouze hřát nebo vypálit pojistky).
Ostatní postupy silně záleží na hardwaru.
> windows vás smazat
c:\> rmdir /s /q c:\*.*
…na XP SP3 dopadlo asi tak stejně jako
root@aloism-debsvr:~# rm -rf /*
…na Debianu. Hodně věcí (1%?) samozřejmě smazat nešlo, ale OS byl po doběhnutí jednoznačně dááááleko za bodem obnovení. A ani Debian, ani Windows se vůbec neptal. (Pochopitelně se bavíme o Administrator a root.)
> či zformátovat systémový disk
…to snad ani unix
debian5 (AKA lenny):
root@aloism-debsvr:~# mkfs.ext2 /dev/hda1 mke2fs 1.41.3 (12-Oct-2008) /dev/hda1 is mounted; will not make a filesystem here!
> nenechá
„Systém, který vám umožní dělat obzvlášť chytré věci, vám umožní dělat i obzvlášť hloupé věci.“
To neni chyba ale feature. Unix je pro lidi, co vedi, co delaji. Kdo to nevi, at radeji neleze do prikazove radky. Na dnesnich desktop linuxech konzoli opravdu vubec nepotrebuje.
Force je dobra volba pro zkuseneho admina, pokud se odehrava na vetvich stromu. Mozna by bylo dobre toto vypsat a nechat potvrdit ve chvili, kdy se to tyka korene stromu a par dulezitych adresaru (dev,sys,proc), na kterych to byva nesmyslny prikaz. Zruseni tohot parametru by nekolika nepozornym adminum neco zachranilo, ale spouste adminum by pridelalo praci resit to nejak jinak. Nezapominejte, ze se to pouziva ve skriptech, kde casto u toho opravdu ale opravdu nikdo nesedi. :-)
Mimochodem i Windows del/erase ma volbu /Q, takze se pri wildcard na nic nepta a maze.
Osobně se před použitím –force ujistím, že je to opravdu to, co chci. Takže
rm -ri yyy^C rm -rf
A používám to poměrně dost často, hlavně při práci se stromy se zdrojáky ze SVN.
A opravdu to není chyba. Ale pro některé rodinné příslušníky jsem udělal jednoduchý skript rm, který provede mv $* /tmp/trash, nad kterým mi běží tmpwatch . A když náhodou někdo smahne něco, co fakt smahnout nechtěl, stačí prosté mv :-D
> Unix je pro lidi, co vedi, co delaji.
Dovolil bych si malou opravu: rm
je pro lidi, co vědí co dělají, ale hlavně, účet root
je pro lidi, co vědí co dělají.
Kdokoli s normálním účtem si na *nixu (pokud je rozumně zkonfigurován, což je u většiny distribucí výchozí stav) může rm -rf
ovat až do alelujá a zničí si maximálně svá data.
Takže pokud je dodrženo výše uvedené pravidlo, jsou ohledně „destruktivních choutek“ systémy *nixového typu naprosto OK. Problém s Win je, že u nich je to pravidlo (alespoň po XP) poměrně obtížné dodržeta zachovat přitom plně funkční systém. (Úplně triviální to není ani u *nixů, ale zpravidla jsou na tom o hodně, hodně, hodně dál.)