DŮLEŽITÉ: Moderní systémy UEFI připojují firmware pod /sys
adresář a zpřístupněte jej OS. NESPUŠTĚJTE tento příkaz na moderním systému, protože odstraní tento firmware a v podstatě zničí váš počítač.
Nejjednodušší scénář, který mě napadá, je někdo, kdo chce smazat všechna data ze svého disku. Mohou existovat zcela legitimní důvody, proč to udělat, a nejjednodušší způsob, který mě napadá, je
rm -rf --no-preserve-root /
Ukázalo se, že tento je ve skutečnosti uveden jako příklad v info rm
:
`--no-preserve-root'
Do not treat `/' specially when removing recursively. This option
is not recommended unless you really want to remove all the files
on your computer.
Dalším naprosto dobrým důvodem je, že chcete odstranit připojený souborový systém, který máte chroot
-ed do. V takovém případě rm -rf --no-preserve-root /
smaže systém v chroot
prostředí, ale vaše zůstane nedotčeno.
Jsem si jistý, že existuje více možných důvodů, ale obecně se zdá velmi rozumný přístup, že mi můj systém umožňuje dělat si s ním, co chci. Mým úkolem je být opatrný, systém by mi měl umožnit dělat jen to, co chci. Pokud je to, co chci, hloupé, je to můj problém a ne OS.
Každopádně se jedná o relativně nové omezení, bylo přidáno v 7. verzi specifikace POSIX (předchozí je zde), předtím rm -rf /
byl naprosto platný příkaz. Na historickou poznámku, .
a ..
adresáře byly vždy chráněny před rm
, od roku 1979, kdy rm
nejprve získal možnost mazat adresáře. Více o tom zde.
Existence --no-preserve-root
přepínač není na přidat další funkce, ale k přepsání velmi rozumné snížení funkčnosti. Tento přepínač je pravděpodobně založen na filozofii, že počítač by měl dělat to, co mu bylo řečeno, a že příkazy by měly být k dispozici pro vyjádření jakékoli požadované akce. Tento přepínač je starší než UEFI a na základě svých zkušeností říkám, že je nyní zastaralý.
V moderní praxi, bez tohoto přepínače, rm
příkaz zabrání náhodnému smazání kořenového adresáře při použití neinicializované proměnné nebo zbloudilého prostoru.
rm -rf /${my_directory}
rm -rf / var/log/httpd/*
Zábavná poznámka pod čarou:Ochrana nebyla jejím záměrem. Podle blogu Sun Microsystems odstranění /
adresář implicitně odstraní aktuální pracovní adresář, což je porušení zvláštního zřetele, který již byl učiněn pro .
a ..
adresáře. To je důvod, proč jejich výbor pro standardy povolil tuto zvláštní výjimku - ne kvůli prevenci nehody. Tato změna byla poprvé představena s Solaris 10 sestavení 36.
http://archive.is/5lmc9