Linux は rm / -rf または rm /* -rf コマンドの誤った実行をどのように防いでいますか?

コマンドを実行すると、rm /* -rfルートディレクトリ以下のすべてのファイルとディレクトリが削除されます。これは非常に危険な操作であり、システムが正常に動作しなくなる可能性があります。コマンドの誤実行を防ぐために、以下の対策を講じることができます。

  1. rm コマンドを rm -i コマンドに置き換えるには、alias コマンドを使用します。これにより、重要なファイルを誤って削除することを防ぐために、ファイルを削除するときに確認を求めるプロンプトが表示されます。
alias rm='rm -i'
  1. alias コマンドを使用して、rm コマンドを del などのカスタム コマンドに置き換え、カスタム コマンドにセキュリティ チェックを追加して、重要なファイルを誤って削除しないようにします。
alias del='rm -i'

function rm() {
    
    
    if [[ "$*" == "/*" ]]; then
        echo "Error: Do not delete all files in root directory."
    else
        command rm "$@"
    fi
}

上記のコードでは、rm 関数がカスタマイズされています. 検出されたパラメーターが /* である場合は、エラー メッセージが表示され、それ以外の場合は、元の rm コマンドが実行されます。

  1. rm /* -rfコマンドを実行しても、ルートディレクトリ配下のファイルやディレクトリが削除されないように、ファイルシステムの保護機構を利用してルートディレクトリを読み取り専用または書き込み禁止に設定してください。
sudo chmod -R a-w /

上記のコマンドは、ファイルが誤って削除されないように、ルート ディレクトリとそのサブディレクトリを読み取り専用に設定します。この設定は、システムの正常な動作に影響を与える可能性があるため、動作前に慎重に検討する必要があることに注意してください。

rm / -fとの違いは何ですかrm /* -rf?

rm / -frm /* -rfシステムの誤動作の原因となる非常に危険なコマンドですそれらの違いは次のとおりです。

  • rm / -fは、ルート ディレクトリの下にあるすべてのファイルとディレクトリを削除しますが、ルート ディレクトリ自体は削除しません。これは、システム上のすべてのファイルとディレクトリが削除されても、ルート ディレクトリがまだ存在するため、システムは引き続き正常に機能することを意味します。

  • rm /* -rfルート ディレクトリ自体を含め、ルート ディレクトリの下のすべてのファイルとディレクトリが削除されます。これは、システム自体を含め、システム上のすべてのファイルとディレクトリが削除されることを意味するため、システムは正しく機能しません。

したがって、システムが正常に動作しなくなる原因となる重要なファイルやシステム ファイルを誤って削除しないように、それが であっても であっても、使用を避ける必要がありますrm / -frm /* -rfファイルまたはディレクトリーを削除する必要がある場合は、コマンド・パラメーターを注意深く調べて、削除する必要のあるファイルまたはディレクトリーのみが削除されるようにする必要があります。

おすすめ

転載: blog.csdn.net/Dontla/article/details/130478720