私のファイルのいくつかで関連する間違いを犯した後rm
(バックアップがあってよかった)、そのような間違いを防ぐ方法について考え始めました。私はファイル権限について何もしなかったので、それについて読み始めましたが、何かが欠けている可能性があると思いました。本質的に私のデータのバックアップを設定したいです(1つ:Windows NTファイルシステムの外付けハードドライブ、2つ:UNIXベースのサーバー、しかし正確な詳細はわかりません)。私のファイルがないと、他の上書きなしでこれを行うことができないか、sudo
「確実ですか?」というメッセージが表示されます。それとも、人々が使用する一種の「標準」ファイルのバックアップ権限が思ったより良いでしょうか?
いろいろな設定を試しましたが、chmod
正しく設定されていないようです。私が理解したのはこれが755
標準であるようですが、私が理解したところによれば、これが私が犯した間違いを犯すのを防ぐことはできません。何について555
?フォルダをファイルとは異なる設定にする必要がありますか?人々は通常、長期ストレージ、つまり頻繁にアクセスしないファイルを保護するために何を使用しますか?
答え1
「w」ビットを削除すると、「w」ビットを削除する項目を誤って上書きすることはありません。それがディレクトリの場合、そのディレクトリからファイルを追加または削除できないことを意味します。ファイルであれば、そのファイルを変更できないことを意味します。ただし、この方法の欠点は、データが失われることです(IMO、ファイル権限はバックアップデータの一部です)。
別のアプローチは、「不変」拡張属性を使用することです。
chattr +i file_or_directory
弱点はそれこのアプローチの1つの欠点は、混乱する可能性があることである。ls -l
ファイルに書き込むことができると教えてくれますが、それを試してみると、カーネルは「Permission Denied」と言います。 rootユーザーでも拡張属性(これはlsattr
)について知ることができます。
最後の一言:頻繁にアクセスする必要のないファイルを誤って変更するのを防ぐ最善の方法は、簡単に言うと、有効にしないでください通常の使用。ファイルシステムを自動的にマウントしないでください。このmount
手順をバックアッププロセスの一部として作成します。これにより、この問題はすべて消えます。
答え2
通常、これらすべてを防ぎ、sudo
意図的にファイルにアクセスするのを防ぎます。これは問題を引き起こし、あまりにも迷惑なので、とにかく自己保護メカニズムを無視する可能性があります。
代わりに、デスクトップ型のごみ箱のように機能するものを使用して、後でtrash-cli
間違えた場合はファイルを回復できます。
APTパッケージマネージャを使用している場合は、次のコマンドを使用してインストールできます。
apt-get install trash-cli
または、パッケージマネージャyum
が何でも使用し、デフォルトでコマンドをコマンドに置き換えます。その後、後でファイルを復元できるので、データの損失を気にせずに狂ったようにファイルを削除できます。 verboseを使用すると、ごみ箱-cliはファイルが削除されたディレクトリを一覧表示します。pacman
rm
trash
trash -v <file>
答え3
エイリアスはどうですか?コマンドラインにエイリアスを入力すると、定義されたすべてのエイリアスが表示されます。次のようなものを追加することをお勧めします。
alias rm='rm -i'
~/.bashrcで定義してください。 (後で必要に応じて削除または変更できます。)
[mal@localhost ~]$ touch 123
[mal@localhost ~]$ rm 123
[mal@localhost ~]$ touch 123
[mal@localhost ~]$ rm -i 123
rm: remove regular empty file ‘123’? y
[mal@localhost ~]$
または
ここに別のトリックがあります。
-i
そのディレクトリで次のファイルを使用または作成します。touch -- -i
touch ./-i
今試してみてくださいrm -rf *
:
[mal@localhost stack]$ touch {1..10}
[mal@localhost stack]$ touch -- -i
[mal@localhost stack]$ ls
1 10 2 3 4 5 6 7 8 9 -i
[mal@localhost stack]$ rm -rf *
rm: remove regular empty file ‘1’? n
rm: remove regular empty file ‘10’? n
rm: remove regular empty file ‘2’? n
これはコマンドラインに*
拡張されるため、最終的にコマンドはになります。このコマンドは、削除する前にメッセージを表示します。-i
rm -rf -i
または
使用セキュリティ管理
Safe-rmは、絶対に削除してはいけない設定可能なファイルやディレクトリのブラックリストと比較して指定されたパラメータを確認するラッパーで、/bin/rmを置き換えて重要なファイルが誤って削除されるのを防ぐように設計されたセキュリティツールです。
Users who attempt to delete one of these protected files or directories will not be able to do so and will be shown a warning
代わりにメッセージ:
$ rm -rf /usr Skipping /usr