Uniksowa legenda miejska
Legendy miejskie (urban legends) są wciąż żywe i prawdopodobnie każdy z jakąś się spotkał. Czy to dotyczyło “czarnej wołgi” czy też czegoś innego… Okazuje się, że od kilku lat powtarzany jest pewien mit dotyczący systemów unikso-podobnych. Wielokrotnie widziałem jak początkujących użytkowników, straszy się następującą komendą:
rm -rf /
Problem w tym, że w większości przypadków takie polecenie po prostu nie zadziała, jest to zwyczajny hoax. Większość dystrybucji Linuksa korzysta z narzędzi GNU Coreutils, a te od kilku lat posiadają wyjątek na komendy chown/chmod/rm itp. wydane rekursywnie na /.
Oznacza to, że wspomniane polecenie zwróci po prostu błąd i wbrew zapewnieniom rzeszy osób, nie stanie się nic strasznego. Zabezpieczenie te powstało w celu zapobiegnięciu sytuacji, kiedy niechcący wkradnie nam się spacja do polecenia (podczas np. bardzo wolnego połączenia zdalnego przez ssh) – przykład:
rm -rf / home/nazwa_uzytkownika/
Jak więc można usunąć rekursywnie, dosłownie wszystko? Powstał w tym celu specjalny przełącznik:
rm -rf --no-preserve-root /
Tak, więc oprócz uprawnień super użytkownika i bycia zwyczajnym idiotą, potrzeba jeszcze magicznej opcji, żeby wyrządzić rzeczywiste szkody. Co więcej według mojej wiedzy, podobne zabezpieczenia posiadają narzędzia z Solarisa i FreeBSD. Cytując fragment ze strony podręcznika FreeBSD:
It is an error to attempt to remove the files /, . or …
Jedyne znane mi narzędzia, które pozwalają na rekursywne usunięcie /, pochodzą z systemu NetBSD, zapewne także OpenBSD i popularnego w zastosowaniach wbudowanych BusyBox. Dwie pierwsze pozycje to systemy, których deweloperzy uważają, że użytkownicy powinni wiedzieć, co robią. Osobna sprawa, że są one dość niszowe, więc nie cieszą się dużą populanością.
A co z BusyBox? Na urządzeniach wbudowanych jak smartfony itd. dostęp do uprawnień super użytkownika jest znacznie utrudniony – potrzebny jest zazwyczaj tzw. jailbreaking. Nawet to nie gwarantuje “sukcesu”, ponieważ nośnik na którym jest zapisany system (zazwyczaj pamięć flash NAND), zazwyczaj pozwala tylko na odczyt z wyjątkiem tzw. flaszowania.
Na koniec prośba do wszystkich: przestancie straszyć początkujących użytkowników poleceniem, które w rzeczywistości jest niczym innym jak legendą miejską.