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

So stellen Sie gelöschte Befehle unter Linux wieder her

In diesem kurzen Tutorial erfahren wir, wie Sie gelöschte Befehle in Linux mit coreutils wiederherstellen oder wiederherstellen und busybox .

Wir verwenden normalerweise rm Befehl zum Entfernen von Inhalten in Linux, richtig? Ja. Was ist, wenn wir rm verwenden? zu rm rm ? Mit anderen Worten, was ist, wenn wir /bin/rm entfernen Datei mit rm Befehl? Ich habe mich immer gefragt, was passieren würde, wenn ich das tatsächlich auf einer Linux-Maschine mache. Also habe ich schnell eine Ubuntu-VM hochgefahren und den /bin/rm gelöscht Datei, indem Sie den folgenden Befehl ausführen:

$ sudo rm /bin/rm

Ich dachte, ich könnte den gelöschten rm leicht wiederherstellen Befehl, indem Sie Gnu coreutils neu installieren Paket, weil rm Der Befehl ist Teil von coreutils Paket, nicht wahr?

Also habe ich versucht, coreutils neu zu installieren Paket mit apt Paketmanager wie unten:

$ sudo apt install --reinstall coreutils

Oh Mann, ich habe mich geirrt! Die apt Paketmanager benötigt rm , daher kann es die coreutils nicht neu installieren Paket.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 1249 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu focal/main amd64 coreutils amd64 8.30-3ubuntu2 [1249 kB]
Fetched 1249 kB in 2s (747 kB/s)    
dpkg: warning: 'rm' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

Ich habe auch versucht, es aus dem Quellcode zu kompilieren, aber es funktioniert auch nicht, weil das Makefile verwendet rm . Mir war bisher nicht bekannt, dass die Neuinstallation ohne rm nicht möglich ist Befehl.

Ich dachte, das Wiederherstellen gelöschter Befehle ist trivial. In diesem speziellen Fall konnte ich jedoch den rm nicht wiederherstellen Befehl. Schließlich fand ich die Lösung nach ein paar Websuchen. Falls Sie jemals versehentlich rm entfernt haben Befehl (ich hoffe, Sie werden es nicht tun), können Sie eine der folgenden Methoden verwenden, um es wiederherzustellen. Nicht nur rm Befehl, könnten Sie dieses Verfahren verwenden, um fast alle gelöschten Kernbefehle wiederherzustellen, die von den coreutils bereitgestellt werden Paket.

Haftungsausschluss:

Sie DÜRFEN DIES NICHT AUF EINEM PRODUKTIONSSYSTEM MACHEN . Es dient ausschließlich Bildungszwecken!.

Gelöschte Befehle in Linux mit Coreutils wiederherstellen

Für diejenigen, die es nicht wissen, die Gnu coreutils Paket stellt grundlegende Kernbefehle wie cat bereit , ls , rm , mkdir , rmdir , touch , und viele mehr. Es ist bei den meisten GNU/Linux-Distributionen vorinstalliert.

Um den gelöschten rm wiederherzustellen erstellen Sie zunächst eine leere Binärdatei mit dem Namen "rm" unter /bin/ Standort:

$ sudo touch /bin/rm

Ausführbar machen:

$ sudo chmod +x /bin/rm

Laden Sie die coreutils herunter Paket mit dem Befehl:

$ apt download coreutils

Bitte beachten Sie, dass wir coreutils nicht neu installieren können aber lade es herunter. Außerdem müssen wir sudo nicht verwenden Privilegien zum Herunterladen eines Pakets.

Entpacken Sie das heruntergeladene Paket mit dem folgenden dpkg Befehl:

$ sudo dpkg --unpack coreutils_8.30-3ubuntu2_amd64.deb

Der obige Befehl entpackt einfach die coreutils Paket, wird es aber nicht konfigurieren.

Erledigt! Jetzt können Sie mit der Verwendung von rm beginnen Befehl. Um zu überprüfen, ob die Funktionalität des rm Befehl wiederhergestellt wird, löschen Sie einfach alle unerwünschten Dateien. Zum Beispiel habe ich coreutils gelöscht Paket, das ich zuvor heruntergeladen habe:

$ rm coreutils_8.30-3ubuntu2_amd64.deb 

Toll! Es funktioniert!

Und bitte tun Sie dies niemals auf einem Produktionssystem!

Stellen Sie gelöschte Befehle mit busybox in Linux wieder her

BusyBox ist eine Software-Suite, die viele gängige UNIX-Dienstprogramme in einer einzigen kleinen ausführbaren Datei bereitstellt. Es bietet Ersatz für die meisten Dienstprogramme, die Sie normalerweise in GNU Fileutils, Shellutils usw. finden. Es ist standardmäßig in Debian und seinen Derivaten wie Ubuntu und vielen anderen Linux-Distributionen verfügbar.

Sie können die Liste der wichtigsten Befehlszeilenprogramme anzeigen, die von busybox bereitgestellt werden mit Befehl:

$ busybox --list

Beispielausgabe:

[
[[
acpid
adjtimex
ar
arch
arp
arping
ash
awk
basename
bc
blkdiscard
blockdev
brctl
bunzip2
busybox
bzcat
bzip2
cal
cat
[..]

In meinem Ubuntu 20.04 LTS-Desktop bietet busybox ungefähr 263 Befehlszeilenprogramme.

Lassen Sie uns nun den gelöschten rm wiederherstellen Befehl, indem Sie vorübergehend einen symlink erstellen dazu. Führen Sie den folgenden Befehl aus, um /bin/rm vorübergehend symbolisch zu verknüpfen nach /bin/busybox :

$ ln -s busybox /bin/rm

Installieren Sie dann coreutils neu Paket mit dem Befehl:

$ sudo apt install --reinstall coreutils

Das ist es. Der obige Befehl stellt den rm wieder her Befehl.

Wie bereits erwähnt, dient dieses Verfahren nicht nur der Wiederherstellung von rm Befehl. Ich denke, wir können mit diesen Methoden fast alle Linux-Befehle wiederherstellen. Überprüfen Sie es selbst auf einer VM und sehen Sie, dass es funktioniert! Nochmals, tun Sie dies nicht in einem Produktionssystem . Sie wurden gewarnt!

Lesen Sie auch:

  • Wiederherstellen der ausführbaren Berechtigung für den Chmod-Befehl in Linux
  • Moreutils – Eine Sammlung nützlicherer Unix-Utilities

Linux
  1. So stellen Sie eine gelöschte Datei unter Linux wieder her

  2. So deaktivieren Sie Befehle zum Herunterfahren und Neustarten in Linux

  3. So stellen Sie das gelöschte /tmp-Verzeichnis in Linux wieder her

  4. Wie kann man gelöschte Dateien unter Linux mit dem Scalpel-Datenwiederherstellungstool wiederherstellen?

  5. Wie kann man geöffnete, aber gelöschte Dateien unter Linux mit ln anstelle von cp wiederherstellen?

So verwenden Sie die Befehle Pbcopy und Pbpaste unter Linux

So stellen Sie gelöschte Daten auf einem Linux-System wieder her

So verwenden Sie Linux-FTP-Befehle

So installieren Sie TestDisk unter Linux und stellen gelöschte Dateien wieder her

So verwenden Sie PhotoRec, um gelöschte Dateien in Linux/Ubuntu wiederherzustellen

So verwenden Sie Linux zum Wiederherstellen gelöschter Dateien