GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでファイルやフォルダが誤って削除または変更されないようにする

時々、私は自分のデータをまっすぐに誤って「SHIFT+DELETE」するとは思いません。さらに悪いことに、データを削除する前にデータをバックアップすることすらしていません。あなたが私のような人なら、ここにあなたにとって良いニュースがあります。 "chattr"と呼ばれる便利なコマンドラインユーティリティを知っています これは、Linuxでファイルやフォルダが誤って削除または変更されるのを防ぐために使用されます。

Chattr、 Chの略 アンジュ属性 ibuteは、Linuxシステムのファイルまたはフォルダーに特定の属性を適用/削除します。したがって、rootユーザーであっても、誤ってまたは意図的にファイルやフォルダを削除または変更することはできません。 。便利そうですね。確かに!

Chattrを使用してLinuxでファイルやフォルダを誤って削除または変更しないようにする

デフォルトでは、Chattrは多くのLinuxオペレーティングシステムにプリインストールされています。ですから、インストールについては気にしないでください。

chattrコマンドのデフォルトの構文は次のとおりです。

chattr [operator] [switch] [filename]

chattrには次の演算子があります:

  • 演算子'+ ' 選択した属性がファイルの既存の属性に追加されます。
  • 演算子'- ' それらを削除します。
  • 演算子'= ' それらがファイルが持つ唯一の属性になります。

Chattrにはさまざまな属性があります-aAcCdDeijsStTu 。各文字は、以下に示すようにファイルに特定の属性を適用します。

  • a -追加のみ
  • A -時間の更新はありません
  • c -圧縮、
  • C -コピーオンライトなし
  • d -ダンプなし
  • D -同期ディレクトリの更新
  • e -エクステントフォーマット、
  • i -不変、
  • j -データジャーナル、
  • P -プロジェクト階層
  • s -安全な削除、
  • S -同期更新
  • t -テールマージなし
  • T -ディレクトリ階層の最上位
  • u -削除できません。

このチュートリアルでは、2つの属性、つまり aの使用法について説明します。 、 i ファイルやフォルダの削除を防ぐために使用されます。

Linuxでファイルが誤って削除されないようにする

file.txtというファイルを作成しましょう 私の現在のディレクトリにあります。

$ touch file.txt

または、

$ > file.txt

次に、 "iを適用します " ファイルを不変にする属性。つまり、ファイルの所有者でありrootユーザーであっても、ファイルを削除したり変更したりすることはできません。

$ sudo chattr +i file.txt

次のコマンドを使用してファイル属性を確認できます:

$ lsattr file.txt

出力例:

----i---------e---- file.txt

次に、通常のユーザーとして、またはsudo権限を使用してファイルを削除してみてください。

$ rm file.txt

出力例:

rm: cannot remove 'file.txt': Operation not permitted

sudoコマンドを試してみましょう:

$ sudo rm file.txt

出力例:

rm: cannot remove 'file.txt': Operation not permitted

テキストファイルにいくつかの内容を追加してみましょう。

$ echo 'Hello World!' >> file.txt

出力例:

bash: file.txt: Operation not permitted

GUIモードでファイルマネージャからファイルを削除しようとしても、削除することはできません。

上記の出力でお気づきのように、rootユーザーであってもファイルを削除または変更することはできません。

属性を取り消すには、 "-iを使用するだけです " 以下のように切り替えます。

$ sudo chattr -i file.txt

これで、不変属性が削除されました。これで、必要に応じてファイルを変更または削除できます。

$ echo 'Hello World!' >> file.txt
$ cat file.txt
Hello World!
$ rm file.txt

同様に、次のセクションで説明するように、ディレクトリが誤って削除または変更されないように制限できます。

Linuxでフォルダが誤って削除および変更されないようにする

dir1というディレクトリを作成します およびfile.txtというファイル このディレクトリ内。

$ mkdir dir1 && touch dir1/file.txt

次に、次のコマンドを使用して、このディレクトリとその内容(file.txt)を不変にします。

$ sudo chattr -R +i dir1

どこで、

  • -R -dir1とその内容を再帰的に不変にします。
  • +i -ディレクトリを不変にします。

次に、通常のユーザーとして、またはsudoユーザーを使用してディレクトリを削除してみます。

$ rm -fr dir1
$ sudo rm -fr dir1

次の出力が得られます:

rm: cannot remove 'dir1/file.txt': Operation not permitted

echo」を使用してファイルにコンテンツを追加してみてください 「コマンド。できましたか?もちろんできませんでした!

属性を取り消すには、次を実行します:

$ sudo chattr -R -i dir1

これで、通常どおりこのディレクトリの内容を削除または変更できます。

ファイルやフォルダが誤って削除されるのを防ぎますが、Linuxでは追加操作を許可します

これで、ファイルやフォルダが誤って削除および変更されないようにする方法がわかりました。次に、ファイルとフォルダーが削除されないようにしますが、ファイルの書き込みは追加モードでのみ許可します。つまり、ファイル内の既存のデータを編集、変更したり、ファイルの名前を変更したり、ファイルを削除したりすることはできません。書き込み用にファイルを開くことができるのは、追加モードでのみです。

追加モードの属性をファイル/ディレクトリに設定するには、次のようにします。

ファイルの場合:

$ sudo chattr +a file.txt

ディレクトリの場合:

$ sudo chattr -R +a dir1

'a'属性が設定されたファイル/フォルダは、書き込み用に追加モードでのみ開くことができます。

ファイルにコンテンツを追加して、機能するかどうかを確認します。

$ echo 'Hello World!' >> file.txt
$ echo 'Hello World!' >> dir1/file.txt

catコマンドを使用してファイルの内容を確認します:

$ cat file.txt
$ cat dir1/file.txt

出力例:

Hello World!

ご覧のとおり、内容を追加することができます。これは、ファイルとフォルダを変更できることを意味します。

今すぐファイルまたはフォルダを削除してみましょう。

$ rm file.txt

出力:

rm: cannot remove 'file.txt': Operation not permitted

フォルダを削除してみましょう:

$ rm -fr dir1/

またはsudoで試してください:

$ sudo rm -fr dir1/

出力例:

rm: cannot remove 'dir1/file.txt': Operation not permitted

属性を削除するには、次のコマンドを実行します。

ファイルの場合:

$ sudo chattr -R -a file.txt

ディレクトリの場合:

$ sudo chattr -R -a dir1/

これで、通常どおりファイルとフォルダを削除または変更できます。

詳細については、manページを参照してください。

$ man chattr

まとめ

データのバックアップと保護は、Linuxシステム管理者の主な仕事の1つです。市場には多数の無料および商用のデータ保護ソフトウェアがあります。幸い、この組み込みツールを使用すると、誤って削除または変更されないようにデータを保護できます。 Chattrは、Linuxシステム内の重要なシステムファイルとデータを保護するための追加ツールとして使用できます。

推奨される読み物:

  • Linuxでの偶発的な削除からファイルを保護する簡単な方法
  • Linuxでの偶発的なシャットダウンまたは再起動を回避する方法

Linux
  1. Linuxで.gzファイルと.tar.gzファイルを抽出する方法

  2. GnuPGを使用してLinuxでファイル/フォルダーを暗号化および復号化する方法

  3. Linuxでファイル/ディレクトリの変更、削除、名前の変更を防ぐ方法は?

  1. Linuxでファイルとディレクトリを隠す簡単な方法

  2. Linuxでコマンドラインからファイルとディレクトリを削除する方法

  3. LinuxでMeldを使用してファイルとフォルダをグラフィカルに比較する

  1. Linuxでコマンドラインからファイルを分割して結合する方法

  2. Linuxでの偶発的なファイル削除を防止および回復する方法

  3. Metamorphose 2 –Linuxでファイルとフォルダーの名前をバッチで変更