GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verhindern Sie, dass Dateien und Ordner unter Linux versehentlich gelöscht oder geändert werden

Manchmal denke ich nicht klar und "SHIFT+DELETE" versehentlich meine Daten. Schlimmer noch, ich sichere die Daten nicht einmal, bevor ich sie lösche. Wenn Sie so etwas wie ich sind, haben wir hier eine gute Nachricht für Sie. Ich kenne ein nützliches Befehlszeilenprogramm namens "chattr" die verwendet wird, um zu verhindern, dass Dateien und Ordner unter Linux versehentlich gelöscht oder geändert werden.

Chattr, kurz für Ch ange Attr ibute wendet/entfernt bestimmte Attribute auf eine Datei oder einen Ordner in Ihrem Linux-System. So kann niemand die Dateien und Ordner versehentlich oder absichtlich löschen oder verändern, auch nicht als Root-Benutzer . Klingt nützlich, nicht wahr? In der Tat!

Verhindern Sie mit Chattr, dass Dateien und Ordner unter Linux versehentlich gelöscht oder geändert werden

Standardmäßig ist Chattr in vielen Linux-Betriebssystemen vorinstalliert. Also kümmern wir uns nicht um die Installation.

Die Standard-Syntax des Chattr-Befehls ist:

chattr [operator] [switch] [filename]

chattr hat die folgenden Operatoren:

  • Der Operator '+ ' bewirkt, dass die ausgewählten Attribute zu den vorhandenen Attributen der Dateien hinzugefügt werden.
  • Der Operator '- ' bewirkt, dass sie entfernt werden.
  • Der Operator '= ' bewirkt, dass sie die einzigen Attribute sind, die die Dateien haben.

Chattr hat verschiedene Attribute, nämlich - aAcCdDeijsStTu . Jeder Buchstabe wendet ein bestimmtes Attribut auf eine Datei an, wie unten aufgeführt.

  • ein - nur anhängen,
  • A - keine Zeitaktualisierungen,
  • c - komprimiert,
  • C - keine Kopie beim Schreiben,
  • d - kein Dump,
  • D - synchrone Verzeichnisaktualisierungen,
  • e - Extent-Format,
  • ich - unveränderlich,
  • j - Datenaufzeichnung,
  • P - Projekthierarchie,
  • s - sicheres Löschen,
  • S - synchrone Updates,
  • t - kein Tail-Merging,
  • T - Spitze der Verzeichnishierarchie,
  • du - nicht löschbar.

In diesem Tutorial werden wir die Verwendung von zwei Attributen besprechen, nämlich a , ich die verwendet werden, um das Löschen von Dateien und Ordnern zu verhindern.

Verhindern Sie, dass Dateien unter Linux versehentlich gelöscht werden

Lassen Sie mich eine Datei namens file.txt erstellen in meinem aktuellen Verzeichnis.

$ touch file.txt

Oder,

$ > file.txt

Jetzt werde ich "i anwenden " Attribut, das die Datei unveränderlich macht. Das bedeutet, dass Sie die Datei nicht löschen oder ändern können, selbst wenn Sie der Eigentümer der Datei und der Root-Benutzer sind.

$ sudo chattr +i file.txt

Sie können die Dateiattribute mit dem Befehl überprüfen:

$ lsattr file.txt

Beispielausgabe:

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

Versuchen Sie nun, die Datei entweder als normaler Benutzer oder mit sudo-Berechtigungen zu entfernen.

$ rm file.txt

Beispielausgabe:

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

Lassen Sie es mich mit dem sudo-Befehl versuchen:

$ sudo rm file.txt

Beispielausgabe:

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

Lassen Sie uns versuchen, einige Inhalte in die Textdatei einzufügen.

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

Beispielausgabe:

bash: file.txt: Operation not permitted

Selbst wenn Sie versuchen, die Datei im GUI-Modus aus Ihrem Dateimanager zu entfernen, können Sie sie nicht löschen.

Wie Sie in den obigen Ausgaben bemerkt haben, können wir die Datei nicht einmal als Root-Benutzer löschen oder ändern.

Verwenden Sie zum Widerrufen von Attributen einfach "-i " Schalter wie unten gezeigt.

$ sudo chattr -i file.txt

Jetzt wurde das unveränderliche Attribut entfernt. Sie können die Datei jetzt nach Belieben ändern oder löschen.

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

Ebenso können Sie die Verzeichnisse vor versehentlichem Löschen oder Ändern schützen, wie im nächsten Abschnitt beschrieben.

Ordner vor versehentlichem Löschen und Modifizieren in Linux schützen

Erstellen Sie ein Verzeichnis namens dir1 und eine Datei namens file.txt innerhalb dieses Verzeichnisses.

$ mkdir dir1 && touch dir1/file.txt

Machen Sie nun dieses Verzeichnis und seinen Inhalt (file.txt) mit dem Befehl unveränderlich:

$ sudo chattr -R +i dir1

Wo,

  • -R - wird dir1 und seinen Inhalt rekursiv unveränderlich machen.
  • +i - macht das Verzeichnis unveränderlich.

Versuchen Sie nun, das Verzeichnis entweder als normaler Benutzer oder mit sudo user.

zu löschen
$ rm -fr dir1
$ sudo rm -fr dir1

Sie erhalten die folgende Ausgabe:

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

Versuchen Sie, einige Inhalte in der Datei mit "echo anzuhängen " Befehl. Hast du es geschafft? Natürlich konntest du nicht!

Führen Sie Folgendes aus, um die Attribute zurückzunehmen:

$ sudo chattr -R -i dir1

Nun können Sie den Inhalt dieses Verzeichnisses wie gewohnt löschen oder ändern.

Verhindert versehentliches Löschen von Dateien und Ordnern, erlaubt jedoch Anhängeoperationen unter Linux

Wir wissen jetzt, wie wir verhindern können, dass Dateien und Ordner versehentlich gelöscht und geändert werden. Als nächstes werden wir verhindern, dass Dateien und Ordner gelöscht werden, aber das Schreiben der Datei nur im Anhängemodus zulassen. Das bedeutet, dass Sie die vorhandenen Daten in der Datei nicht bearbeiten, ändern, die Datei umbenennen und die Datei löschen können. Sie können die Datei nur im Append-Modus zum Schreiben öffnen.

Um die Zuordnung des Anhängemodus zu einer Datei/einem Verzeichnis festzulegen, gehen wir wie folgt vor:

Für Dateien:

$ sudo chattr +a file.txt

Für Verzeichnisse: 

$ sudo chattr -R +a dir1

Eine Datei/Ordner mit gesetztem 'a'-Attribut kann nur im Anhängemodus zum Schreiben geöffnet werden.

Fügen Sie etwas Inhalt zu der/den Datei(en) hinzu, um zu prüfen, ob es funktioniert oder nicht.

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

Überprüfen Sie den Dateiinhalt mit dem cat-Befehl:

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

Beispielausgabe:

Hello World!

Wie Sie sehen, können wir den Inhalt anhängen. Das bedeutet, dass wir die Dateien und Ordner ändern können.

Lassen Sie uns jetzt versuchen, die Datei oder den Ordner zu löschen.

$ rm file.txt

Ausgabe:

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

Lassen Sie uns versuchen, den Ordner zu löschen:

$ rm -fr dir1/

Oder versuchen Sie es mit sudo:

$ sudo rm -fr dir1/

Beispielausgabe:

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

Führen Sie die folgenden Befehle aus, um die Attribute zu entfernen:

Für Dateien:

$ sudo chattr -R -a file.txt

Für Verzeichnisse: 

$ sudo chattr -R -a dir1/

Jetzt können Sie die Dateien und Ordner wie gewohnt löschen oder ändern.

Weitere Einzelheiten finden Sie in den Manpages.

$ man chattr

Abschluss

Datensicherung und -schutz ist eine der Hauptaufgaben eines Linux-Systemadministrators. Auf dem Markt sind zahlreiche kostenlose und kommerzielle Datenschutzsoftware erhältlich. Glücklicherweise haben wir dieses eingebaute Tool, das uns hilft, die Daten vor versehentlichem Löschen oder Ändern zu schützen. Chattr kann als zusätzliches Tool verwendet werden, um die wichtigen Systemdateien und Daten in Ihrem Linux-System zu schützen.

Empfohlene Lektüre:

  • Ein einfacher Weg, Dateien unter Linux vor versehentlichem Löschen zu schützen
  • So vermeiden Sie versehentliches Herunterfahren oder Neustarten unter Linux

Linux
  1. Eine einfache Möglichkeit, Dateien und Verzeichnisse in Linux zu verstecken

  2. So löschen Sie Dateien und Verzeichnisse in Linux über die Befehlszeile

  3. So teilen und kombinieren Sie Dateien von der Befehlszeile in Linux

  4. So extrahieren Sie .gz- und .tar.gz-Dateien unter Linux

  5. Metamorphose 2 – Batch-Umbenennung Ihrer Dateien und Ordner unter Linux

Eine einfache Möglichkeit, Dateien unter Linux vor versehentlichem Löschen zu schützen

So öffnen Sie Dateien und Ordner als Administrator im Nautilus-Dateimanager unter Linux

So verstecken Sie Ordner und Dateien in Linux mithilfe einer Textdatei

Sparen Sie Platz, indem Sie Dateien und Ordner unter Linux komprimieren

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

Linux-tar-Befehl zum Komprimieren und Extrahieren von Dateien