nedeľa 15. decembra 2019

sudo rm -rf /

Dosť často sa stretnete s vtipom sudo rm -rf /

Čo to vlastne je? Pokúsme sa to rozanalyzovať:

rm je príkaz na mazanie súborov:

máme tu súbor Zaira.txt

martin@guliverkel:~$ ls -lh Zaira.txt 
-rw-r--r-- 1 martin martin 1.9K Dec 15 20:42 Zaira.txt

Vymazali sme súbor Zaira.txt

martin@guliverkel:~$ rm Zaira.txt 
martin@guliverkel:~$ ls -lh Zaira.txt 
ls: cannot access 'Zaira.txt': No such file or directory

rm má prepínač -i ako interactive: bude sa vás pýtať: ako vidíte tu:

martin@guliverkel:~$ rm -i Diego_kokain.txt 
rm: remove regular file 'Diego_kokain.txt'? y  
martin@guliverkel:~$ ls -lh Diego_kokain.txt 
ls: cannot access 'Diego_kokain.txt': No such file or directory


(Na RHEL distribúciach RHEL, CentOS, Fedora, Oracle Linux je rovno v aliasoch zabudované to, aby sa vás pýtalo, či chcete skutočne zmazať. Veď dajte na tých distribúciach príkaz alias)

potom tu máme prepínač rm -r 

Ako teda mažeme adresáre? (na prázdne adresáre používame príkaz rmdir) Príklad:

martin@guliverkel:~$ mkdir sexi_kocky
martin@guliverkel:~$ rmdir sexi_kocky/


Vytvorme si ale adresár a dajme tam súbory: (a pozrime sa na príkaz rmdir teraz)

martin@guliverkel:~$ mkdir sexi_divoke_kocky
martin@guliverkel:~$ touch sexi_divoke_kocky/Diego_Kokain.drg
martin@guliverkel:~$ touch sexi_divoke_kocky/Zaira.txt
martin@guliverkel:~$ touch sexi_divoke_kocky/RobertF.avi
martin@guliverkel:~$ touch sexi_divoke_kocky/xxx_VladkoM_rozdelenieRepubliky.fin
martin@guliverkel:~$ rmdir sexi_divoke_kocky/
rmdir: failed to remove 'sexi_divoke_kocky/': Directory not empty

V takom prípade vyskúšam príkaz rm -r s tým, že -r znemaná rekurzívne. (Zmaže všetko, čo sa nachádza, teda, adresár, ba aj súbory v ňom. Aj Diegovu kokainovu minulosť. Na tomto systéme.) Pozrime sa na to:

martin@guliverkel:~$ rm -r sexi_divoke_kocky/
martin@guliverkel:~$ ls -lh sexi_kocky/
ls: cannot access 'sexi_kocky/': No such file or directory


rm -rf spraví to, že zmaže všetko rekurzívne (r). prepínač f znamená force, tj. nepýta sa a spraví to. Pozrime sa:

martin@guliverkel:~$ mkdir futbalisti
martin@guliverkel:~$ touch futbalisti/crespo
martin@guliverkel:~$ touch futbalisti/sevcenko
martin@guliverkel:~$ touch futbalisti/Pali
martin@guliverkel:~$ touch futbalisti/Mudra
martin@guliverkel:~$ rm -rf futbalisti/
martin@guliverkel:~$ ls -lh futb*
ls: cannot access 'futb*': No such file or directory


V linuxe sa koreňové adresáre určujú týmto znakom /

To je najvyššia možná úroveň. Pokiaľ by sme ako obyčajný užívateľ dali rm -rf /, zmažeme svoj domáci adresár. (Vyššie nemáme práva zápisu.)

Pokiaľ ako root (alebo s pomocou sudo ako bežný užívateľ) vykonáme túto činnosť, zmažeme si celý systém.

Preto pre lásku Božiu, nikdy nepíšte sudo rm -rf / - zmažete si celý koreňový adresár.

PS: Zbytok článku som dopísal z telefónu, pretože som vykonal tento príkaz a čaká ma tak inštalácia Linuxu. (Veď si všimnite lokalitu, kde som to písal.)


Žiadne komentáre:

Zverejnenie komentára