.Bashrc accidentellement modifié et maintenant je ne peux pas me connecter malgré la saisie correcte du mot de passe

23

J'ai foiré bigtime avec le fichier bashrc. J'installais Gurobi et je devais définir des variables de chemin dans le fichier bashrc. J'ai donc remplacé tout le texte de bashrc par les variables de chemin et enregistré le fichier bashrc. Et je me suis également assuré que, si quelque chose se passe mal, j'ai une sauvegarde de ce fichier. Le fichier de sauvegarde d'origine non modifié se trouve dans le dossier Téléchargements.

Maintenant, lorsque j'ai redémarré le système, je n'ai pas pu me connecter malgré le mot de passe correct. Par conséquent, je voudrais vous demander de l'aide. Quels types de correctifs sont possibles étant donné que j'ai toujours le fichier bashrc dans le répertoire Téléchargements

crypto
la source
1
utilisez grub rescue ou une session en direct pour le copier du répertoire de téléchargements sur le mauvais.
Rinzwind
pourriez-vous développer votre suggestion? Je suis toujours un débutant en matière d'ubuntu
crypto
1
Maintenant, vous me demandez ce qui est arrivé à l'option de sécurité intégrée qui existait auparavant sur l'écran de connexion pour ce type de scénario.
kasperd
3
Pourquoi ne pas vous connecter en tant que root et corriger le fichier .bashrc de votre utilisateur?
jamesqf
3
La méthode classique consiste à démarrer en mode mono-utilisateur. Vous devez interrompre le chargeur de démarrage et ajouter "single" à la ligne spécifiant votre noyau et les paramètres de démarrage, comme décrit par exemple ici .
Peter - Rétablir Monica

Réponses:

38

Utilisez LiveUSB ou LiveDVD.

Démarrez en session en direct, montez votre disque dur et copiez votre .bashrcfichier d' origine sur le fichier modifié.

Ensuite, vous pouvez redémarrer en toute sécurité (éjecter USB ou DVD).

Informations générales: Dans le cas où vous n'auriez pas de sauvegarde de .bashrcfichier, vous pouvez utiliser celui de liveUSB / DVD.

Michal Polovka
la source
Je suppose que l'intérêt de faire des sauvegardes est lorsque vos fichiers sont différents de ceux par défaut du CD d'installation.
Dmitry Grigoryev
2
Oui, mais il est également possible que vous ayez ruiné quelque chose et que vous ne sachiez pas quoi exactement, ou que vous n'ayez pas de sauvegarde. C'est pourquoi j'ai ajouté à la réponse à la question des PO des informations générales pour quiconque pourrait ne pas avoir de sauvegarde;)
Michal Polovka
Eh bien oui, si vous n'avez pas de sauvegarde de quelque chose que vous avez ruiné, vous devrez recommencer à zéro. Heureusement, le PO en a un.
Dmitry Grigoryev
25

Vous devriez pouvoir démarrer en mode de récupération , ce qui vous permettra de passer dans un shell racine et de corriger le problème à partir de là. Cela évite d'avoir à télécharger un système d'exploitation supplémentaire.

Instructions tirées du wiki Ubuntu:

  1. Allumez votre ordinateur.
  2. Attendez que le BIOS ait fini de charger ou soit presque terminé. (Pendant ce temps, vous verrez probablement un logo du fabricant de votre ordinateur.)
  3. Appuyez et maintenez rapidement la touche Shift, ce qui fera apparaître le menu GNU GRUB. (Si vous voyez le logo Ubuntu, vous avez raté le point où vous pouvez entrer dans le menu GRUB.)

  4. Sélectionnez la ligne qui commence par " Advanced options".

  5. Sélectionnez la ligne se terminant par " (recovery mode)", probablement la deuxième ligne, quelque chose comme:

    Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode)

  6. Appuyez sur Retour et votre machine commencera le processus de démarrage.

  7. Après quelques instants, votre poste de travail devrait afficher un menu avec un certain nombre d'options. L'une des options (vous devrez peut-être faire défiler vers le bas de la liste) sera " Drop to root shell prompt". Appuyez sur Retour avec cette option en surbrillance.

  8. La partition racine est montée en lecture seule. Pour le monter en lecture / écriture, entrez la commande

    mount -o remount,rw /

  9. Si vous avez / home, / boot, / tmp ou tout autre point de montage sur une partition distincte, vous pouvez les monter avec la commande

    mount --all

    (Cela doit être fait après l'étape 8 afin qu'il /etc/mtabsoit accessible en écriture.)

Si vous ne disposez pas de l'option de récupération, vous pouvez appuyer esur GRUB pour modifier l'option de démarrage standard et l'ajouter recoveryà la fin de la linuxligne (avant-dernière ligne par défaut, juste avant initrd). Appuyez ensuite sur F10pour l'exécuter.

Bob
la source
9

Utilisez un CD live

  1. Démarrez à l'aide d'un CD / DVD en direct. Dans le cas où vous n'avez pas l'iso et ne souhaitez pas télécharger le grand iso, téléchargez Tiny Core - 10MB.
  2. Sur une ligne de commande, tapez sudo mount /dev/sdXn /mntoù se sdXntrouve votre partition Ubuntu.
  3. Tapez cd /mnt/home/<your user name>/Downloads.
  4. Maintenant, restaurez votre .bashrccomme votre nouveau à l' .bashrcaide de cette commande mv ../.bashrc ../.bashrc_old && cp ./.bashrc ../.
  5. Maintenant, redémarrez votre système et vous devriez être prêt à partir.
Ceda EI
la source
8

Insérez le DVD ou USB que vous avez utilisé pour installer Ubuntu et démarrez à partir de celui-ci. Choisissez "essayer Ubuntu" et attendez qu'il revienne sur le bureau.

Vérifiez les disques dans les lanceurs pour celui qui a votre maison. Cliquer dessus le monte dans / media /

Ouvrez un terminal et cdaccédez-y à vos téléchargements et copiez le fichier dans votre maison. Ce serait:

cd /media/home/{your_username}/Downloads/
sudo cp .bashrc ../

et redémarrez sans le DVD / USB.

Rinzwind
la source
J'obtiens quelque chose comme cp: impossible de créer un fichier normal '../bashrc': autorisation refusée. :(
crypto
ah utilise sudo! :)
Rinzwind
C'était une question boiteuse. Désolé. Leçon apprise! Et comme vous l'avez suggéré, j'accepte la réponse de Michal. J'espère que ça va
crypto
pas de problème, je suis sur 200 quand même> :)
Rinzwind
6

Se connecter via SFTP

Connectez-vous au système via SFTP, à partir de la sftpcommande intégrée d'une autre machine Linux ou d'un PC avec WinSCP ou FileZilla, et réparez le fichier. Le .bashrcfichier n'est généralement pas impliqué dans SFTP (il est possible de modifier votre authorized_keysfichier pour le rendre impliqué, mais vous avez douté de l'avoir fait).

Monty Harder
la source
Ou, de même, connectez-vous avec ssh dash(ou tout autre shell non-bash).
Peter Taylor
5

Je suggère d'avoir toujours DEUX comptes sudo. Ce sont des comptes qui peuvent agir en tant que root dans presque tous les cas, si vous donnez le mot de passe normal pour ce compte. Vous pouvez temporairement agir en tant que root.

Si vous vissez un compte, vous pouvez le réparer avec l'autre.

Mais, il PEUT être possible d'être dans un compte REGULIER et 'su su-up-sudo-account-name' si vous connaissez le mot de passe. Ensuite, vous agirez en tant que compte foiré et pourrez 'sudo cp backup .bashrc' après 'dc / home / screwed-up-account'.

Dennis
la source
4

Comme l'ont dit quelques personnes, plus d'un compte "sudo" est la meilleure solution. Deuxièmement, si vous faites beaucoup de mods dans votre fichier .bashrc, déposez une copie sur une clé USB avant de commencer à bricoler, alors vous n'avez pas à recommencer avec un blanc, vous pouvez revenir au dernier bien connu. fichier bashrc sans perdre tout votre bricolage précédent. La première chose que je fais en bricolant avec mon .bashrc ou .vimrc ou. . . tout fichier de configuration doit être copié sur ma clé USB pratique avant de commencer. Je suis humain, j'ai des enfants, je suis distrait lol. J'ai une clé USB pleine de fichiers de configuration pour bash, vim, conky, openbox, tint2 et plus.

skytale
la source
Une autre astuce consiste à utiliser RCS pour l'historique des versions des fichiers de configuration (tels que bashrc, vimrc ou quoi que ce soit dans / etc).
ChuckCottrill
0

Connectez-vous en tant que root à la place et utilisez votre sauvegarde pour corriger votre .bashrc comme dans les autres réponses.

Pour une sécurité optimale, ne vous connectez pas à l'environnement X Windows normal. Au lieu de cela, appuyez sur control-alt-F2pour accéder à une console de texte et connectez-vous. Une fois que vous avez résolu le problème, exécutez exitpour vous déconnecter du shell racine, puis appuyez sur control-alt-F7pour revenir à X Windows. (Notez que X Windows peut être sur tty1 au lieu de tty7, donc vous devrez peut-être utiliser à la control-alt-F1place. Tty6 ou tty7 sont historiquement traditionnels, mais certaines distributions le déplacent vers tty1 parce que les gens utilisent rarement ttys sont plus. Ubuntu peut ou peut ne pas avoir Essayez de découvrir de quelle manière votre système est configuré.)

db48x
la source
Le compte root est désactivé dans Ubuntu, donc à moins que vous ne l'ayez activé, il n'y a aucun moyen de se connecter en tant que root.
Seth
1
@Seth Si vous avez accès au chargeur de démarrage, vous pouvez démarrer en mode de récupération et y obtenir un shell racine.
Bob
@Bob true, mais ce n'est pas ce que dit la réponse. Cela devrait cependant fonctionner.
Seth
1
@Seth Yea, j'ai déjà ajouté ma propre réponse avec plus de détails. Oh, btw @ db48x, normalement X11 fonctionne sur tty7(Ctrl + Alt + F7), non tty1.
Bob
Aïe, je ne savais pas qu'ils avaient désactivé le compte root. Peut-être que je ne
mettrai
0

Chaque fois que j'allumais le PC après cet incident, je recevais l'écran de connexion ubuntu habituel, sauf qu'après avoir entré le mot de passe, l'écran clignotait pendant une seconde et l'écran de connexion se présentait à nouveau.

Je ne sais pas si c'est ça votre problème, mais cela m'est arrivé une fois. Si l'un des fichiers chargés au démarrage du shell (.bashrc, .bash_profile, .profile) renvoie du texte vers stdout, vous ne pourrez pas vous connecter graphiquement. Vous pouvez toujours entrer dans un tty (ctrl + alt + f1), vous connecter à partir de là, puis récupérer votre fichier.

Scimonster
la source