webentwicklung-frage-antwort-db.com.de

Ich habe die Datei "/ etc / passwd" gelöscht und kann mich nicht anmelden

Ich habe versucht, meinen Benutzernamen und auch mein Home-Verzeichnis (/home/username) zu ändern, und mein System stürzte ab. Ich habe die Datei passwd gelöscht, aber ich hatte eine Sicherungskopie mit dem Namen passwd_bkp. Ich habe versucht, diesen passwd_bkp in passwd umzubenennen, aber es hat nicht funktioniert. Es wurden keine Befehle ausgeführt ... Ich befand mich in einem Terminalfenster.

Ich habe mein System neu gestartet und kann mich jetzt nicht anmelden. GRUB bietet zwei Optionen: Linux und Wiederherstellungsmodus.

Ich habe versucht, eine Sitzung als root zu öffnen, aber es heißt, dass das Dateisystem beschädigt ist. Ich kann nicht auf meine Dateien zugreifen.

Habe ich alle meine Dateien verloren?

22

Nein, angesichts Ihrer Beschreibung haben Sie keine Ihrer Dateien verloren (außer /etc/passwd, die Sie gelöscht, aber gesichert haben).

Booten Sie eine Ubuntu Live-CD/DVD oder ein Live-USB-Flash-Laufwerk. Wählen Sie Try Ubuntu (nicht Install Ubuntu). Öffnen Sie beim Laden des Desktops ein Nautilus-Fenster (Dateibrowser). Sie finden die Partition für Ihr Ubuntu-System unter Devices. Klicken Sie darauf, um es zu montieren.

Jetzt können Sie das Backup wiederherstellen. Sie müssen es jedoch als root ausführen. Hier ist eine ziemlich einfache Möglichkeit, dies zu tun.

  1. Öffnen Sie ein Terminalfenster (Ctrl+Alt+T). Geben Sie im Terminal cd ein und geben Sie den Space Taste, aber nicht drücken Enter noch.

  2. Suchen Sie in Nautilus das Verzeichnis etc im installierten Ubuntu-System. (Dies ist nicht dasselbe wie das Verzeichnis etc für die Live-CD. Das Verzeichnis etc im installierten Ubuntu-System befindet sich in der Partition, die Sie gerade gemountet haben.)

  3. Ziehen Sie dieses Verzeichnis etc in das Terminal, um den vollständigen Pfad in das Terminal einzufügen, und führen Sie den Befehl cd ... aus.

  4. Drücken Sie Enter um den Befehl auszuführen. Jetzt befinden Sie sich in dem Verzeichnis, in dem sich Ihre Datei passwd befindet. Ich gehe davon aus, dass sich auch Ihre Sicherungsdatei passwd_bkp hier befindet.

  5. Führen Sie diesen Befehl aus:

    Sudo cp passwd_bkp passwd
    

Dadurch wird die Datei passwd aus Ihrer Sicherung wiederhergestellt. Jetzt sollten Sie in der Lage sein, einen Neustart durchzuführen, die CD/DVD oder das USB-Flash-Laufwerk zu entfernen und das installierte Ubuntu-System neu zu starten. Ihr installiertes Ubuntu-System sollte wieder funktionieren.


Für die Zukunft sollten Sie sich bewusst sein, dass es nicht empfohlen wird, /etc/passwd, /etc/group, /etc/shadow oder /etc/gshadow manuell zu bearbeiten. Verwenden Sie stattdessen die im Lieferumfang von Ubuntu enthaltenen Dienstprogramme, um Änderungen an Benutzern und Gruppen auf Ihrem System vorzunehmen. Sie wissen wahrscheinlich, dass Sie dies in den Systemeinstellungen oder mit users-admin bearbeiten können. Es gibt aber auch sehr leistungsfähige Befehlszeilen-Dienstprogramme, die immer noch viel sicherer und einfacher sind, als die Konfigurationsdateien manuell selbst zu bearbeiten. Hier ist die Dokumentation der wichtigsten Hilfsprogramme in Ubuntu:

Sie können Ihren Benutzernamen ändern mit einigen dieser Dienstprogramme. Diese Antwort erklärt eine Möglichkeit im Detail. Sie sollten sich jedoch bewusst sein (wie derzeit durch einen Kommentar dort angesprochen), dass einige Anwendungen davon ausgehen, dass Ihr Benutzername gleich bleibt. Das Ändern Ihres Benutzernamens kann daher zu Problemen führen.

32
Eliah Kagan

Alternativ zum Booten einer Live-CD können Sie im Grub-Menü e drücken, um den Rettungsmodus-Eintrag zu bearbeiten, und init=/bin/sh zu den Kernel-Argumenten hinzufügen. Dadurch gelangen Sie direkt zu einer Root-Shell, in der Sie die Sicherungsdatei wieder in das Original kopieren können, nachdem Sie das Dateisystem mit mount -o remount,rw / erneut schreibgeschützt haben.

4
psusi

Sie sollten zuerst die Antwort von Eliah Kagan lesen, bevor Sie mit dem Lesen dieser Antwort fortfahren. Er erklärt, wie man mit der Situation umgeht und warum es normalerweise nicht notwendig ist,/etc/passwd manuell zu ändern.

Wie auch immer, wenn Sie wirklich wissen, was Sie tun und Sie müssen /etc/passwd manuell bearbeiten, können Sie es tun, aber dennoch sollten Sie die Dateien nicht einfach mit ändern Ihr Lieblingseditor. Stattdessen gibt es das Werkzeug

vipw

Aus den Manpages:

The vipw and vigr commands edits the files /etc/passwd and /etc/group,
respectively. With the -s flag, they will edit the shadow versions of those
files, /etc/shadow and /etc/gshadow, respectively. The programs will set
the appropriate locks to prevent file corruption.

Für z.B. Wenn Sie eine Benutzer-UID ändern möchten, ist es meines Wissens die einzige Möglichkeit, die Dateien manuell zu bearbeiten. Auch wenn Sie ein Benutzerkennwort ändern und dann ohne es zu wissen zu seinem vorherigen zurückkehren möchten, gibt es keine Möglichkeit mit usermod oder so. Wenn Sie jedoch das Hash-Kennwort aus der Schattendatei speichern, können Sie das Kennwort des Benutzers ändern. Anschließend können Sie das Hash-Kennwort erneut hinzufügen und die Schattendatei mit vipw -s bearbeiten.

2
lumbric

Nachdem ich die Antwort von @ EliahKagan befolgt habe, konnte ich mich nicht von lightdm aus anmelden und mein Konto wurde nicht aufgelistet. Ich habe festgestellt, dass die Berechtigung der Datei passwd nicht ordnungsgemäß eingerichtet wurde. der lightdm-benutzer hatte keinen zugriff darauf. So habe ich es behoben:.

Melde dich an einem tty an Ctrl+Alt+F1

wechseln Sie in das Verzeichnis /etc

cd /etc

Ändern Sie dann die Berechtigungen in 644

Sudo chmod 644 passwd

Dann mache ls -la

die Berechtigungszeichenfolge sollte folgendermaßen aussehen

-rw-r--r--
1
danidee