Ecrasement du Bash, comment le re-initialiser ?

angelbj

Membre confirmé
15 Février 2011
10
0
Toulouse
Bonjour, j'ai fait une grosse "boulette", j'ai écrasé mon bash par une connerie (j'ai tappé la mauvaise commande en sudo, et j'ai pas verifier ce que je marquai ok ! ^^)
J'ai donc cherché sur le net comment je pourrais re-constituer mon bash, mais sans trouver de solutions valable, je m'adresse à vous afin de m'aider à trouver une solution :)
J'ai essayé de compiler un bash avec le code open source ici , mais j'ai eu un problème de compilation, j'ai l'impression qu'il me faut un bash valide pour passer la compilation correctement !
Mon autre solution réside à utiliser un bash d'un amis lui aussi sur Yosemite mais je ne suis pas certains du résultat ...

Des solutions ? Je suis preneur, merci.
 
Salut angelbj.


Pour ce qui est du fichier exécutable du shell, je te l'ai chargé au format zippé dans le dossier public de ma DropBox ☞bash☜ (c'est celui de mon OS «Yosemite 10.10.1»). Récupère-le et déplace-le dézippé sur ton Bureau de session admin en préalable (petite icône rectangulaire anthracite arborant le logo : exec - signe que le fichier porte bien l'executive_bit et qu'il n'est pas nécessaire de rectifier ses permissions).


  1. Mainenant lance le «Terminal» mais ne fais rien dans la fenêtre qui s'affiche (s'il y a en a une qui s'affiche au point où tu en es). Va à la barre supérieure de menus --> Terminal/Préférences/Général. Tu avises l'option : Ouvrir les shells avec --> tu sélectionnes (au cas où ce n'aurait pas été le cas) la 2è sous-option : ⦿ Commande (chemin d'accès complet) : --> il est possible que dans la fenêtre rectangulaire de saisie subalterne, soit déjà renseigné le chemin :

    Bloc de code:
    /bin/bash

    --> il s'agit que tu édites ce chemin (ou que tu le crées s'il n'y a rien d'écrit) de manière à ce que soit écrit :

    Bloc de code:
    [COLOR="Red"]/bin/tcsh[/COLOR]

    (il s'agit d'un autre shell d'accès de rechange, présent dans le répertoire invisible /bin de l'OS). Ton édition accomplie, ferme le panneau des Préférences et quitte le «Terminal» (⌘Q). À présent, relance-le de neuf --> la fenêtre qui s'affiche est désormais intitulée : Terminal — tcsh --> tu as récupéré l'espace de saisie d'un shell opératoire.

    --------------------​
  2. Tu n'as qu'à maintenant saisir :

    Bloc de code:
    sudo mv ~/Desktop/bash /bin/bash

    et ↩︎ (presse la touche 'Entrée' du clavier) --> demande de password (commande sudo) --> tape ton mot-de-passe admin à l'aveugle - aucun caractère ne se montrant à la frappe - et derechef ↩︎ --> le fichier exécutable du shell : bash a réintégré son répertoire d'inhérence régulier : /bin.

    --------------------​

  3. À présent, il convient de rectifier les accédants au fichier, que ta manipulation graphique a virés à user=toi & group=staff --> saisis :

    Bloc de code:
    sudo chown 0:0 /bin/bash

    et ↩︎ (pas besoin d'authentification par mot-de-passe admin dans les 5' qui suivent une première authentification pour une commande sudo) --> les accédants ont été rectifiés à user=root & group=wheel comme attendus.

    --------------------​

  4. À présent, reviens au menu : Terminal/Préférences/Général pour renverser l'édition antérieure du chemin d'accès au shell préférentiel. Tu retrouves l'option --> Ouvrir les shells avec --> normalement la 2è sous-option : ⦿ Commande (chemin d'accès complet) : --> est cochée et dans la fenêtre rectangulaire de saisie subalterne, est toujours renseigné le chemin :

    Bloc de code:
    /bin/tcsh

    --> tu l'édites à rebours de manière à ce que soit écrit :

    Bloc de code:
    [COLOR="Red"]/bin/bash[/COLOR]

    --------------------​

  5. Il ne te reste plus qu'à fermer le panneau des Préférences, à quitter de nouveau le «Terminal» (⌘Q) et si à présent tu le relances, la fenêtre qui s'affiche est intitulée : Terminal — bash --> tu as récupéré un shell : bash opérationnel. Tu n'as qu'à passer une commande invoquant sudo en mode superfétatoire, du type :

    Bloc de code:
    sudo ls -al /

    et ↩︎ --> password --> ↩︎ --> et tu vois s'afficher la liste des éléments de l'espace-racine de l'OS assortis de leurs droits. DONE.

    ♘
 
Dernière édition par un modérateur:
Petite incise. Je conseillerais plutôt zsh (ou ksh) que tcsh, celui-ci étant encore plus éloigné de la syntaxe de bash que celui-là.

Quant à l'erreur de compilation mystère : c'était quoi ?
[il se trouve que pour le bug Shellshock j'ai récemment dû compiler bash avec ses correctifs et j'avais aussi une erreur de compilation qui était facile à contourner (un fichier vide à créer).]