Ang rm -rf
ay isang Bash command na katulad ng DROPSQL command. Maliban na lang kung mayroon kang replica (backup) ng iyong database table, mawawala ang lahat ng data.
rm -rf ay isang command na kapag na-invoke nang walang root privilege ay aalisin ang lahat ng folder kung saan may access ang user. Kapag na-invoke na may mga pribilehiyo sa ugat, aalisin nito ang iyong hard drive.
Hindi ako naging malas na magkamali sa pagpapatakbo ng code na ito sa isang production server dati, ngunit hindi lahat ay naging ganoon kaswerte. Narito ang ilang mga kawili-wiling rm -rf mga kwentong maaari mong relatable.
1. Thomas at ang CLI-based Trash Program
Thomas ay nasa kanyang College Unix lab na nagtatrabaho sa isang midterm project kung saan nakakonekta siya sa isang server sa isang katabing lab gamit angPuTTY + RealVNC.
Diretso lang ang kanyang proyekto: Gumawa ng “trash” CLI program na kumukuha ng listahan ng mga path ng file at inililipat ang mga ito sa isang~/.trash
direktoryo. Pagkatapos ay maaari mong “i-empty the trash” na nagpapatupad ng rm sa direktoryo. Ginawa niya ang unang bahagi at kinukumpleto niya ang walang laman na utos.
Sa paanuman ay naitakda niya ang maling variable na nag-iwan sa path ng pag-alis bilang /
at nagkaroon siya ng sudo access. Walang nangyari nang patakbuhin niya ang code noong una ngunit hindi nagtagal ay naging glitchy at nagsimulang magpakita ng static. Ctrl + C ay hindi makakatulong. Sumunod, blangko ang monitor at nadiskonekta.
Nagpatakbo ang kanyang code ng sudo rm-rf /
at na-wipe nito ang lahat ng data sa server. Sa kabutihang-palad para sa Thomas, nagtatrabaho siya sa test server ng departamento at nagawa niyang mabawi ang data mula sa mga backup na disk. Hindi siya nawala sa kanyang pagpasok.
2. Isang Malinis na Pagpunas Sa Isang Backup Session
Alex ay isang administrator ng network sa isang kumpanya na nag-back up ng kanilang mga makina sa pamamagitan ng mga script. Sa isang nakamamatay na Friday, in-upgrade niya ang script gamit ang text, rm -rf ${DIRECTERY}/
sa halip na
rm -rf ${DIRECTORY}/ – ginagawa ang command update sa
rm-rf langdahil ang ${DIRECTERY} ay naging walang laman na string.
Nagsimula ang backup session noong gabing iyon at bago pa malaman ni Alex, nalinis na ang lahat ng machine sa network! Sa kabutihang-palad para sa kanya, ang kumpanya ay nagba-back up ng mga file bawat oras kaya walang masyadong pinsalang nagawa.Gayunpaman, ito ay isang abalang katapusan ng linggo. Nakakabaliw na ang isang backup na trabaho ay magpupunas ng mga system, tama ba?
3. Ang Automated Recursive Cleaner
Isang beses Eric ay gumagana sa isang file server at gustong awtomatikong maglinis ng ilang file bawat linggo o higit pa. Pinlano niya ang kanyang linya at sinubukan ito sa layuning alisin lamang ang medyo mas lumang mga file. Ang kanyang trabaho ay nasa loob ng isang direktoryo kaya hindi niya naisip na may maaaring magkamali. Well, kalaunan ay nalaman niyang mali ang hula niya.
Pinagana niya ang sumusunod na utos at gumana ito. Sumunod, mano-mano niyang idinagdag ang linya sa crontab at iyon ay noong nagkamali siyang pinalitan ang .
ng / .
hanapin . -type f -name-ctime -60 -exec rm -rf {} \;
Fast forward sa isang linggo mamaya at malaking bilang ng mga file ang nawala. Ang masama ay tinanggal sila sa tila random na pattern kaya naisip niya na ang kumpanya ay na-hack hanggang sa nagpatakbo siya ng isang code check at napagtanto na siya ang hacker.
Sa kabutihang palad, araw-araw siyang nag-iingat ng mga panlabas na backup para maayos niya ang kanyang pagkakamali. Mula noong araw na iyon maaari kang tumaya na siya ay naging sobrang maingat sa mga utos na pinapatakbo niya na may mga pribilehiyo ng admin.
Ang 2 pangunahing take-home point na umiiral sa mga kuwento sa itaas ay 1, palaging i-double check ang iyong code at ang posibleng resultang epekto nito at 2, palaging panatilihing napapanahon ang iyong mga backup hangga't maaari dahil hindi mo alam kung kailan darating ang mga ito sa madaling gamiting.
May alam ka bang baliw na rm -rf story from experience or elsewhere? Ibahagi ang mga ito sa amin sa seksyon ng mga komento.