GNU/Linux >> Znalost Linux >  >> Linux

Co je sudo rm -rf v Linuxu a je to nebezpečné?

Úvod

Příkazy terminálu jsou pro nové uživatele Linuxu zastrašující. Spuštění čehokoli bez znalosti výsledku může mít nevratné následky. V Linuxu jsou nebezpečné příkazy často výsledkem jednoduché chyby při psaní.

Znalost toho, co dělá každá část příkazu Linuxu a potenciální nebezpečí, pomáhá takovým situacím předejít. Typickým příkladem je sudo rm -rf příkaz, který je velmi užitečný při správném použití, ale může mít následky, pokud je zadán chybně nebo nesprávně.

Tento článek vysvětluje sudo rm -rf příkaz v Linuxu, co dělá a jak jej správně používat.

Předpoklady

  • Přístup k příkazovému řádku/terminálu.
  • Uživatel s právy sudo.
  • Soubory nebo adresáře k odstranění.

syntaxe sudo rm -rf

sudo rm -rf Uživatelé se často vyhýbají příkazu a jsou uváděni jako nebezpečný příkaz. Syntaxe příkazu je:

sudo rm -rf <directory or file>

Níže je uveden rozpis každé části příkazu:

  • sudo - povýší práva uživatele na uživatele root. Umožňuje odstranit soubory a adresáře vlastněné rootem.
  • rm - Linuxový příkaz pro odstranění souborů nebo adresářů.
  • -r - Volba označuje rekurzivní odstranění a pomáhá odstranit neprázdné adresáře.
  • -f - Volba umožňuje odstranění bez potvrzení, i když soubor neexistuje.
  • <directory or file> – Cesta k adresáři nebo souboru, který se má odstranit.

Pomocí příkazu odstraňte soubory nebo neprázdné adresáře, kde je vlastníkem root.

Chcete-li vytvořit příklad použití, postupujte podle následujících kroků:

1. Otevřete terminál (CTRL +ALT +T ).

2. Vytvořte testovací adresář s podadresářem:

sudo mkdir test1 && sudo mkdir test1/test2

Tvůrcem a vlastníkem obou adresářů je uživatel root.

3. Pokuste se odstranit adresář jako běžný uživatel:

rm -rf test1

Výstup zobrazuje zprávu o odmítnutí oprávnění.

4. Použijte příkaz s sudo pro odstranění adresáře:

sudo rm -rf test1

Příkaz nevypíše zprávu a automaticky smaže adresáře bez potvrzení.

Proč je sudo rm -rf nebezpečné?

sudo rm -rf příkaz je nebezpečný, není-li používán správně. rm příkaz smaže, ale chyba při psaní nebo neznalost toho, co se odstraňuje, může být nebezpečné.

Upozornění: Nespouštějte příkazy v následujících příkladech.

Následující příklady ukazují, jak a kdy rm -rf příkaz je potenciálně nebezpečný:

1. Při odstraňování adresářů je následující překlep sotva patrný:

sudo rm -rf / directory/subdirectory

Mezera za prvním lomítkem (/ ) předá kořenový adresář jako parametr mazání. Příkaz odstraní kořenový adresář a všechny podadresáře kvůli -r vlajka. Výsledek je stejný jako při spuštění následujícího:

sudo rm -rf /

Ačkoli většina moderních systémů zobrazuje varovnou zprávu a vyžaduje další možnosti, -f příznak v některých scénářích přepíše potvrzení.

2. Smazání více souborů s různými názvy a stejnou příponou pomocí znaku hvězdičky (* ) pomáhá přiřadit nula nebo více znaků. Následující překlep v příkazu má za následek chybu:

sudo rm -rf * .txt

Podobně jako v předchozím příkladu, přidání další mezery za hvězdičku (* ) předá pracovní adresář a všechny jeho podadresáře ke smazání. Proto se příkaz spustí následovně:

sudo rm -rf *

V důsledku toho bude vše z aktuálního adresáře bez varování odstraněno. Příkaz odstraní systém, pokud je aktuální pracovní adresář root (/ ).

3. Nebezpečná forma sudo -rm rf může nastat při mazání adresářů, které končí stejnými znaky:

sudo rm -rf /* -directory

Kvůli mezerám se příkaz změní na:

sudo rm -rf /*

Protože příkaz odstraní obsah z kořenového adresáře, nejsou zde žádná varování.

Závěr

Po přečtení této příručky víte o nebezpečích používání sudo rm -rf . Přestože příkaz není nebezpečný a slouží svému účelu, mohl by potenciálně smazat celý váš systém nebo důležitá data.

Podívejte se na našeho průvodce zálohováním a obnovou po havárii, abyste předešli nevratné ztrátě dat.


Linux
  1. Co je příkaz Chown v Linuxu a jak jej používat

  2. Jaký je rozdíl mezi příkazem locate a find v Linuxu

  3. Spusťte příkaz cd jako superuživatel v Linuxu

  1. Jaký je účel souborů utmp, wtmp a btmp v Linuxu

  2. Příklady příkazů sudo v Linuxu

  3. linux rozdíl mezi sudo crontab -e a jen crontab -e

  1. Jaký je ekvivalent linuxového příkazu updatedb pro Mac?

  2. Jaký je příkaz pro kopírování, čtení a odstraňování souboru v linuxu

  3. Co dělá 'set -e' a proč by mohlo být považováno za nebezpečné?