Versehentlich geändert .bashrc und jetzt kann ich mich nicht anmelden, obwohl ich das Passwort richtig eingegeben habe


23

Ich habe bigtime mit der bashrc-Datei durcheinander gebracht. Ich habe Gurobi installiert und musste Pfadvariablen in der bashrc-Datei setzen. Also habe ich den gesamten Text in bashrc durch die Pfadvariablen ersetzt und die bashrc-Datei gespeichert. Und ich habe auch sichergestellt, dass ich eine Sicherungskopie dieser Datei habe, wenn etwas Schlimmes passiert. Die ursprüngliche, nicht geänderte Sicherungsdatei befindet sich im Ordner "Downloads".

Jetzt, als ich das System neu startete, konnte ich mich nicht anmelden, obwohl ich das richtige Passwort angegeben hatte. Daher möchte ich Sie um Hilfe bitten. Welche Art von Korrekturen sind möglich, wenn ich die bashrc-Datei noch im Downloads-Verzeichnis habe


1
Verwenden Sie grub rescue oder eine Live-Sitzung, um es aus dem Download-Verzeichnis über das falsche zu kopieren.
Rinzwind

Könnten Sie bitte Ihren Vorschlag ausarbeiten? Ich bin immer noch ein Anfänger , wenn es um ubuntu kommt
Krypto

1
Jetzt habe ich mich gefragt, was mit der fehlersicheren Option geschehen ist, die auf dem Anmeldebildschirm für diese Art von Szenario vorhanden war.
Kasperd

3
Melden Sie sich als Root an und korrigieren Sie die .bashrc-Datei Ihres Benutzers.
Jamesqf

3
Die klassische Methode ist das Booten in den Einzelbenutzermodus. Sie müssen den Bootloader unterbrechen und "single" in die Zeile einfügen, in der Sie Ihren Kernel und die Bootparameter angeben, wie zum Beispiel hier beschrieben .
Peter - Reinstate Monica

Antworten:


38

Verwenden Sie LiveUSB oder LiveDVD.

Starten Sie die Live-Sitzung, hängen Sie Ihre Festplatte ein und kopieren Sie die Originaldatei .bashrcüber die geänderte.

Dann können Sie sicher neu starten (USB oder DVD auswerfen).

Allgemeine Informationen: Falls Sie keine .bashrcDateisicherung hätten, können Sie die von liveUSB / DVD verwenden.


Ich nehme an, der ganze Sinn Back-ups zu machen ist , wenn Ihre Dateien sind unterschiedlich von den Standard diejenigen von der Installations - CD.
Dmitry Grigoryev

2
Ja, aber es besteht auch die Möglichkeit, dass Sie etwas ruiniert haben und nicht genau wissen, was, oder dass Sie kein Backup haben. Deshalb habe ich zur Antwort auf OPs Frage auch allgemeine Informationen für
diejenigen

Nun ja, wenn Sie kein Backup von etwas haben, das Sie ruiniert haben, müssen Sie bei Null anfangen. Glücklicherweise hat das OP einen.
Dmitry Grigoryev

25

Sie sollten in der Lage sein, in den Wiederherstellungsmodus zu booten , der es Ihnen ermöglicht, in eine Root-Shell zu gelangen und das Problem von dort aus zu beheben. Dadurch muss kein zusätzliches Betriebssystem heruntergeladen werden.

Anweisungen aus dem Ubuntu-Wiki:

  1. Schalten Sie Ihren Computer ein.
  2. Warten Sie, bis das BIOS vollständig oder fast vollständig geladen ist. (In dieser Zeit sehen Sie wahrscheinlich ein Logo Ihres Computerherstellers.)
  3. Halten Sie die Umschalttaste gedrückt, um das GNU GRUB-Menü aufzurufen. (Wenn Sie das Ubuntu-Logo sehen, haben Sie den Punkt verpasst, an dem Sie das GRUB-Menü aufrufen können.)

  4. Wählen Sie die Zeile aus, die mit " Advanced options" beginnt .

  5. Wählen Sie die mit " (recovery mode)" endende Zeile aus , wahrscheinlich die zweite Zeile, etwa so:

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

  6. Drücken Sie die Eingabetaste, und Ihr Computer beginnt mit dem Startvorgang.

  7. Nach einigen Augenblicken sollte auf Ihrer Workstation ein Menü mit einer Reihe von Optionen angezeigt werden. Eine der Optionen (möglicherweise müssen Sie zum Ende der Liste scrollen) ist " Drop to root shell prompt". Drücken Sie die Eingabetaste, wobei diese Option markiert ist.

  8. Die Root-Partition ist schreibgeschützt gemountet. Geben Sie den Befehl ein, um es mit Lese- / Schreibzugriff bereitzustellen

    mount -o remount,rw /

  9. Wenn Sie / home, / boot, / tmp oder einen anderen Einhängepunkt auf einer separaten Partition haben, können Sie diese mit dem Befehl einhängen

    mount --all

    (Dies muss nach Schritt 8 erfolgen, damit /etc/mtabes beschreibbar ist.)

Wenn Sie nicht über die Wiederherstellungsoption verfügen, können Sie eGRUB drücken , um die Standardstartoption zu bearbeiten und recoveryam Ende der linuxZeile einzufügen (standardmäßig vorletzte Zeile, direkt davor initrd). Drücken Sie dann F10, um es auszuführen.


9

Verwenden Sie eine Live-CD

  1. Booten Sie mit einer Live-CD / DVD. Falls Sie die ISO nicht haben und die große ISO nicht herunterladen möchten, laden Sie Tiny Core - 10MB herunter.
  2. Geben Sie in einer Befehlszeile ein, sudo mount /dev/sdXn /mntwo sdXnsich Ihre Ubuntu-Partition befindet.
  3. Typ cd /mnt/home/<your user name>/Downloads.
  4. Stellen Sie nun .bashrcIhren Status .bashrcmit diesem Befehl wieder her mv ../.bashrc ../.bashrc_old && cp ./.bashrc ../.
  5. Starten Sie nun Ihr System neu und Sie sollten einsatzbereit sein.

8

Stecken Sie die DVD oder den USB-Stick ein, mit dem Sie Ubuntu installiert haben, und booten Sie von dort. Wählen Sie "Ubuntu testen" und warten Sie, bis der Desktop wiederhergestellt ist.

Überprüfen Sie die Laufwerke in den Lauchern auf das Laufwerk, auf dem sich Ihr Zuhause befindet. Durch Anklicken wird es in / media / gemountet.

Öffnen Sie ein Terminal und cddarin Ihre Downloads und kopieren Sie die Datei in Ihr Zuhause. Das wäre:

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

und ohne die DVD / USB neu starten.


Ich bekomme so etwas wie cp: kann keine reguläre Datei '../bashrc' erstellen: Berechtigung verweigert. :(
Krypto

ah benutze sudo! :)
Rinzwind

Es war eine lahme Frage. Es tut uns leid. Lektion gelernt! Und wie Sie vorgeschlagen haben, akzeptiere ich Michals Antwort. Hoffe das ist okay
Krypto

kein problem, ich bin sowieso auf 200> :)
Rinzwind

6

Verbindung über SFTP

Stellen Sie über SFTP eine Verbindung zum System her, entweder über den integrierten sftpBefehl eines anderen Linux-Computers oder über einen PC mit WinSCP oder FileZilla, und reparieren Sie die Datei. Die .bashrcDatei ist normalerweise nicht in SFTP involviert (es ist möglich, die authorized_keysDatei zu optimieren , um sie zu involvieren, aber Sie bezweifeln, dass Sie dies getan haben).


Oder verbinden Sie sich auf ähnliche Weise mit ssh dash(oder einer anderen Nicht-Bash-Shell).
Peter Taylor

5

Ich schlage vor, immer ZWEI sudo-Accounts zu haben. Dies sind Konten, die in FAST allen Fällen als Root fungieren können, wenn Sie das normale Kennwort für dieses Konto angeben. Sie können vorübergehend als Root fungieren.

Wenn Sie ein Konto vermasseln, können Sie es mit dem anderen Konto reparieren.

Es ist jedoch MÖGLICH, dass Sie sich in einem REGELMÄSSIGEN Konto und in einem "su-screwed-up-sudo-account-name" befinden, wenn Sie das Passwort kennen. Dann fungieren Sie als vermasselter Account und können 'sudo cp backup .bashrc' nach 'dc / home / vermasselter-account' ausführen. Jetzt ist es möglich, ohne dass dies vermasselt wird, aber in Ihrem speziellen Fall nicht sicher.


4

Wie von einigen Leuten gesagt, ist mehr als ein "Sudo" -Konto der beste Weg. Zweitens, wenn Sie viele Modifikationen an Ihrer .bashrc-Datei vornehmen, legen Sie eine Kopie auf einem Memory Stick ab, bevor Sie anfangen zu basteln. Dann müssen Sie nicht mit einem Leerzeichen von vorne beginnen, sondern können zum letzten bekannten Gut zurückkehren. bashrc-Datei, ohne all Ihre vorherigen Bastelarbeiten zu verlieren. Das erste, was ich mache, wenn ich an meinem .bashrc oder .vimrc oder .vimrc bastle. . . Jede Konfigurationsdatei wird vor dem Start auf meinen handlichen Memory Stick kopiert. Ich bin ein Mensch, ich habe Kinder, ich werde abgelenkt, lol. Ich habe einen Memory Stick voller Konfigurationsdateien für bash, vim, conky, openbox, tint2 und mehr.


Ein weiterer Trick ist die Verwendung von RCS zum Versionsverlauf von Konfigurationsdateien (wie bashrc, vimrc oder irgendetwas in / etc).
ChuckCottrill

0

Melden Sie sich stattdessen als root an und verwenden Sie Ihr Backup, um Ihre .bashrc-Datei wie in den anderen Antworten zu reparieren.

Melden Sie sich aus Sicherheitsgründen nicht bei der normalen X Windows-Umgebung an. Drücken Sie stattdessen, control-alt-F2um zu einer Textkonsole zu wechseln und sich anzumelden. Wenn Sie das Problem behoben haben, führen Sie exitden Befehl aus, um sich von der Root-Shell abzumelden, und drücken Sie dann control-alt-F7, um zu X Windows zurückzukehren. (Beachten Sie, dass X Windows möglicherweise auf tty1 statt auf tty7 installiert ist, sodass Sie möglicherweise control-alt-F1stattdessen tty6 oder tty7 verwenden müssen . Einige Distributionen verschieben es jedoch auf tty1, da Benutzer selten ttys verwenden. Ubuntu hat möglicherweise oder möglicherweise nicht Experimentieren Sie, um herauszufinden, wie Ihr System konfiguriert ist.)


Das Root-Konto ist in Ubuntu deaktiviert. Wenn Sie es nicht aktiviert haben, können Sie sich nicht als Root anmelden.
Seth

1
@Seth Wenn Sie Zugriff auf den Bootloader haben, können Sie in den Wiederherstellungsmodus booten und dort eine Root-Shell abrufen.
Bob

@ Bob wahr, aber das ist nicht, was die Antwort sagt. Das sollte aber funktionieren.
Seth

1
@Seth Ja, ich habe dort bereits meine eigene Antwort mit mehr Details hinzugefügt. Oh, übrigens @ db48x, normalerweise läuft X11 auf tty7(Strg + Alt + F7), nicht tty1.
Bob

Autsch, ich wusste nicht, dass sie das Root-Konto deaktiviert haben. Vielleicht aktualisiere ich meine Ubuntu-Maschine doch nicht ...
db48x

0

Jedes Mal, wenn ich den PC nach diesem Vorfall einschaltete, wurde ich mit dem üblichen Ubuntu-Anmeldebildschirm begrüßt, mit der Ausnahme, dass nach Eingabe des Kennworts der Bildschirm eine Sekunde lang blinkte und sich der Anmeldebildschirm wieder zeigte.

Ich weiß nicht, ob das Ihr Problem ist, aber das ist mir einmal passiert. Wenn eine der beim Starten der Shell geladenen Dateien (.bashrc, .bash_profile, .profile) Text an stdout ausgibt, können Sie sich nicht grafisch anmelden. Sie können immer noch ein tty aufrufen (Strg + Alt + F1), sich von dort aus anmelden und dann Ihre Datei wiederherstellen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.