GNU/Linux >> Tutoriels Linux >  >> Linux

Comment restaurer ou récupérer des commandes supprimées sous Linux

Dans ce bref tutoriel, nous apprendrons comment restaurer ou récupérer des commandes supprimées sous Linux en utilisant coreutils et busybox .

Nous utilisons généralement rm commande pour supprimer des éléments sous Linux, n'est-ce pas ? Oui. Et si nous utilisions rm à rm rm ? En d'autres termes, que se passe-t-il si nous supprimons /bin/rm fichier en utilisant rm commande? Je me suis toujours demandé ce qui se passerait si je faisais cela sur une machine Linux. J'ai donc rapidement lancé une machine virtuelle Ubuntu et supprimé le /bin/rm fichier en exécutant la commande suivante :

$ sudo rm /bin/rm

Je pensais pouvoir facilement récupérer le rm supprimé commande en réinstallant Gnu coreutils package, car rm la commande fait partie de coreutils paquet, n'est-ce pas ?

J'ai donc essayé de réinstaller coreutils paquet utilisant apt gestionnaire de paquets comme ci-dessous :

$ sudo apt install --reinstall coreutils

Oh mec, j'avais tort! Le apt le gestionnaire de paquets nécessite rm , il ne peut donc pas réinstaller les coreutils emballer.

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)

J'ai également essayé de le compiler à partir des sources, mais cela ne fonctionne pas non plus, car le Makefile utilise rm . Jusqu'à présent, je ne savais pas que la réinstallation n'était pas possible sans rm commande.

Je pensais que la restauration des commandes supprimées était triviale. Cependant, dans ce cas particulier, je n'ai pas pu restaurer le rm commande. Finalement, j'ai trouvé la solution après quelques recherches sur le Web. Si vous avez déjà supprimé accidentellement rm commande (j'espère que vous ne le ferez pas), vous pouvez utiliser l'une des méthodes suivantes pour le récupérer. Pas seulement rm commande, vous pouvez utiliser cette procédure pour récupérer presque toutes les commandes principales supprimées fournies par coreutils paquet.

Avis de non-responsabilité :

Vous NE DEVEZ PAS FAIRE CELA SUR UN SYSTÈME DE PRODUCTION . C'est strictement à des fins éducatives uniquement !

Récupérer des commandes supprimées sous Linux à l'aide de coreutils

Pour ceux qui ne connaissent pas, les Gnu coreutils package fournit des commandes de base essentielles telles que cat , ls , rm , mkdir , rmdir , touch , et beaucoup plus. Il est préinstallé avec la plupart des distributions GNU/Linux.

Pour récupérer le rm supprimé commande, créez d'abord un fichier binaire vide avec le nom "rm" sous /bin/ emplacement :

$ sudo touch /bin/rm

Rendez-le exécutable :

$ sudo chmod +x /bin/rm

Téléchargez les coreutils package à l'aide de la commande :

$ apt download coreutils

Veuillez noter que nous ne pouvons pas réinstaller coreutils mais téléchargez-le. De plus, nous n'avons pas besoin d'utiliser sudo privilèges pour télécharger un package.

Décompressez le package téléchargé avec le dpkg suivant commande :

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

La commande ci-dessus décompresse simplement les coreutils package, mais ne le configurera pas.

Fait! Maintenant, vous pouvez commencer à utiliser le rm commande. Pour vérifier si la fonctionnalité du rm commande est restaurée, supprimez simplement tout fichier indésirable. Par exemple, j'ai supprimé coreutils package que j'ai téléchargé plus tôt :

$ rm coreutils_8.30-3ubuntu2_amd64.deb 

Génial! Ça marche !

Et, s'il vous plaît, ne faites jamais cela sur un système de production !!

Restaurer les commandes supprimées à l'aide de busybox sous Linux

BusyBox est une suite logicielle qui fournit de nombreux utilitaires UNIX courants dans un seul petit exécutable. Il fournit des remplacements pour la plupart des utilitaires que vous trouvez habituellement dans GNU fileutils, shellutils, etc. Il est disponible par défaut dans Debian et ses dérivés comme Ubuntu et de nombreuses autres distributions Linux.

Vous pouvez afficher la liste des principaux utilitaires de ligne de commande fournis par busybox en utilisant la commande :

$ busybox --list

Exemple de résultat :

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

Dans mon bureau Ubuntu 20.04 LTS, busybox fournit environ 263 utilitaires de ligne de commande.

Maintenant, restaurez le rm supprimé commande en créant temporairement un lien symbolique à cela. Exécutez la commande suivante pour lier temporairement /bin/rm vers /bin/busybox :

$ ln -s busybox /bin/rm

Réinstallez ensuite coreutils package à l'aide de la commande :

$ sudo apt install --reinstall coreutils

C'est ça. La commande ci-dessus restaurera le rm commande.

Comme indiqué précédemment, cette procédure ne sert pas uniquement à récupérer rm commande. Je suppose que nous pouvons récupérer presque toutes les commandes Linux en utilisant ces méthodes. Vérifiez-le vous-même sur une machine virtuelle et voyez que cela fonctionne ! Encore une fois, ne faites pas cela dans un système de production . Vous êtes prévenu !

Lire aussi :

  • Restaurer l'autorisation exécutable pour la commande Chmod sous Linux
  • Moreutils – Une collection d'utilitaires Unix plus utiles

Linux
  1. Comment récupérer un fichier supprimé sous Linux

  2. Comment désactiver les commandes d'arrêt et de redémarrage sous Linux

  3. Comment restaurer le répertoire /tmp supprimé sous Linux

  4. Comment récupérer des fichiers supprimés sous Linux à l'aide de l'outil de récupération de données Scalpel ?

  5. Comment récupérer un fichier ouvert mais supprimé sous Linux en utilisant ln au lieu de cp ?

Comment utiliser les commandes Pbcopy et Pbpaste sous Linux

Comment récupérer des données supprimées sur un système Linux

Comment utiliser les commandes FTP de Linux

Comment installer TestDisk sur Linux et récupérer des fichiers supprimés

Comment utiliser PhotoRec pour récupérer des fichiers supprimés sous Linux/Ubuntu

Comment utiliser Linux pour récupérer des fichiers supprimés