Je lisais la célèbre légende de récupération Unix , et je me suis demandé:
Si j'avais un shell BusyBox ouvert et que le binaire BusyBox était lui-même supprimé, serais-je toujours en mesure d'utiliser toutes les commandes incluses dans le binaire BusyBox?
De toute évidence, je ne serais pas en mesure d'utiliser la version BB de ces commandes d' un autre shell en cours d'exécution bash
, car le fichier BusyBox lui-même ne serait pas disponible pour bash
s'ouvrir et s'exécuter. Mais à partir de l'instance en cours d'exécution de BusyBox, il me semble qu'il pourrait y avoir deux méthodes par lesquelles BB exécuterait une commande:
- Il peut créer et exécuter une nouvelle instance de BusyBox, en l'appelant en utilisant le nom approprié et en lisant le fichier BusyBox à partir du disque.
- Il peut bifurquer et exécuter une logique interne pour exécuter la commande spécifiée (par exemple, en l'exécutant comme un appel de fonction).
Si (1) est la façon dont BusyBox fonctionne, je m'attendrais à ce que certaines commandes fournies par BusyBox deviennent indisponibles à partir d'une instance en cours d'exécution de BB après la suppression du binaire BB.
Si (2) fonctionne comme cela, BusyBox pourrait être utilisé même pour la récupération d'un système où BB lui-même avait été supprimé - à condition qu'il y ait toujours une instance en cours d'exécution de BusyBox accessible.
Est-ce documenté quelque part? Sinon, existe-t-il un moyen de le tester en toute sécurité?
PATH
été désactivées? Suppose-t-il une valeur par défaut de PATH
?
is there a way to safely test it?
Téléchargez l'openwrt
image générique x86 et attachez l'image à une nouvelle machine VirtualBox