Dečko je na Server Faultu okačio pitanje „Uradio sam rm -rf / i obrisao sajtove 1500 klijenata uključujući i bekape tako da nemam ništa – šta da radim“ – pa je dospeo na „hahahahaha listu“ svih bezgrešnih pametnica na planeti kojima se to nikad ne bi moglo desiti, tako da su na svim sajtovima osvanuli naslovi tipa „CAR OBRISAO KOMPANIJU: Greškom ukucao ova četiri slova u kod

Šta je bila njegova greška – ako izignorišemo to da je ovo bio čist HOAX na koji su naseli svi mogući domaći i strani portali, nešto tipa „Srbin ubio ajkulu ubicu u Šarm el Šeiku

  1. Nije imao backup na nekom serveru koji niđe veze sa postojećim nema. On jeste imao backup, ali na lokaciji koja je mountovana na produkcioni server kao NFS/sshfs/ostalo i backup se radio najverovatnije prostim kopiranjem ili rsync-om, tako da je, što se produkcionog servera tiče – ta backup lokacija bila otprilike tretirana kao bilo koji disk na kompjuteru.
  2. Što nije postavio proveru varijabli pre izvršenja skripte. Komanda unutar skripte nije bila „rm -rf /“ kao što su preneli portali, nego „rm -rf $varijabla1/$varijabla2“ a pošto su zbog lošeg koda i jedna i druga varijabla bile prazne to je prosleđeno kao „rm -rf /“
    Dakle, trebalo je postaviti proveru tipa…

Prvobitna informacija je bila da je čovek okinuo rm -rf / i da je tako obrisao sve je odmah prismrdela na prevaru, jer iako je komanda opasna i znači „briši sve i ne pitaj me ništa“ bilo koji Linux baja će se nasmejati jer se tom komandom ne može obrisati ništa, naravno ukoliko nije postavljen neki alijas koji će komandu tretirati drugačije.

Ovo je inače komanda kojom se plaše svi i uvek, pahajde da se pozabavimo njom na nekom testnom kompjuteru pod CentOS 6 minimal operativnim sistemom (obično se na hosting serverima vrti ili CentOS ili Cloud Linux) a koji je unutar VirtualBoxa. Naravno ne igrajte se ovim na bilo kom ne-testnom kompjuteru ma šta pročitali ovde.

rm -rf inicijalna komanda

rm -rf / ne briše ništa, ali preti

…i da tutnemo tu komandu unutar neke shell skripte, što je simulacija stanja koje je prijavljeno – neće se ništa desiti

Simulacija

 

Dakle, ništa nije obrisano. Da bi se dovelo do katastrofe mora da se okine komanda rm -rf –no-preserve-root. Eee tom komandom već žurka može da počne

Komanda apokalipse

Ispravno

Brisanje svega – nešto se prijavljuje kao nemoguće za brisanje

 

Evo šta je ostalo od mašine

Evo šta je ostalo od mašine, bog dušu da joj prosti

 

Komande ne rade

Komande ne rade

 

Posle restarta na-dugme, Linux se diže jer nema odakle

Posle restarta na-dugme, Linux se diže jer nema odakle

Dakle, ako nije postojao neki alijas koji bi komandu „rm -rf“ tretirao kao „rm -rf –no-preserve-root“ a to može da postavi samo ili neko lud ili uljez na haknutom serveru – ne bi se desilo ništa kao i da je postojala provera ulaznih varijabli – ne bi se desilo ništa.
Sve i da je komanda „rm -rf –no-preserve-root /“ pokrenuta pod nekim neprivilegovanim korisnikom, ne bi se desilo ništa jer taj korisnik ne bi mogao da dira ništa što nije njegovo.

Zaključak, sve i da je istina ovo što je ovaj gore mučenik naveo kao problem, naslov CAR OBRISAO KOMPANIJU: Greškom ukucao ova četiri slova u kod је netačan…najbliže korektnom odgovoru sa 4 slova bi u ovom slučaju bi moglo da bude rm -rf /*