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?
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.
Ö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.
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.)
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.
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.
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:
adduser
/ addgroup
deluser
/ delgroup
usermod
groupmod
useradd
(niedriger als adduser
, verwenden Sie stattdessen normalerweise adduser
)userdel
(niedriger als deluser
, verwenden Sie stattdessen normalerweise deluser
)groupadd
(niedriger als addgroup
, verwenden Sie stattdessen normalerweise addgroup
)groupdel
(niedriger als delgroup
, verwenden Sie stattdessen normalerweise delgroup
)passwd
gpasswd
pwck
grpck
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.
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.
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.
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--