私の考えでは、ここに多くの人が「rm -rf
大きなダメージを与えないことを望みながら、間違ったディレクトリを編集する間違いを犯すと思います。Unixホラーストーリー??誰かが言及しました(コメントエリア前のリンク)それ
... UNIXを使用するすべてのUNIXコースまたは会社は、UNIXを実行したい人のアカウントを無効にするか、実行を防ぐためにrm -frが設定されていると確信しています。
現在、UnixまたはLinuxディストリビューションに実装はありますか?システム管理者(rootアクセス権を含む)としても、このエラーを防ぐための一般的な方法は何ですか?
少しあるようです。ルートディレクトリの保護(/
)Solaris(2005年以降)およびGNU(2006年以降)。とにかく、他のフォルダにも同じ保護方法を実装できますか?
より明確に言えば、一般的な使い方についてのアドバイスを求めるのではなく、rm
(より多くのコンテンツを示すためにタイトルを更新しました)、rootフォルダ保護のようなものが欲しいです。これを行うには、rm -rf /
特定のパラメータを渡す必要があります。rm -rf --no-preserve-root /
.. custom Isディレクトリセットの同様の実装はありますか?または、/
保護されたファイル以外のファイルを指定できますか?根を保つオプション?
ベストアンサー1
誤解を避けるためにrm -rf
、入力しないrm -rf
。
ディレクトリツリーを削除する必要がある場合は、次のワークフローをお勧めします。
- 必要に応じて、削除するディレクトリの親ディレクトリに変更します。
mv directory-to-delete DELETE
DELETE
実際に削除したいものであるかどうかを調べて確認してください。rm -rf DELETE
rm -rf
以外の引数で呼び出さないでくださいDELETE
。複数のステップにわたって削除を実行すると、スペルエラー(代わりにrm -rf /foo /bar
)のように、rm -rf /foo/bar
または脳の損傷のために(申し訳ありません。削除してfoo.old
維持することを意味しますfoo.new
)、誤ったコンテンツを削除していないことを確認できます。
他の人が入力しないと信じられないという問題がある場合は、rm -rf
その人の管理者権限を削除することをお勧めします。間違っている可能性がありますrm
。
常にバックアップしてください。
バックアップが正常に動作し、最新の状態であることを定期的に確認してください。
どこでも簡単にダウンロードできないすべてをバージョン管理に置きます。
デフォルトのUNIXシステムでは、特定のディレクトリが削除されないようにするには、特定のパラメータを拒否するカスタムスクリプトでrm
置き換えます(またはシャドウすることをお勧めします)。rm
またはパスしてくださいhg rm
。
一部のUNIXバリアントは追加の可能性を提供します。
- OSXでは設定できますアクセス制御リストディレクトリは、新しいエントリの作成や既存のエントリの変更を防ぐことなく、その中のファイルやサブディレクトリの削除を防ぎます。 (
chmod +a 'group:everyone deny delete_child' somedir
これにより、サブディレクトリ内のファイルの削除が防止されます。必要に応じて、サブディレクトリにもACLを設定します。) - Linuxでは、SELinux、AppArmor、またはその他のセキュリティフレームワークでルールを設定して、特定のディレクトリの変更を
rm
禁止できます。