J'ai supprimé le fichier /etc/passwd
et je ne peux plus me connecter maintenant. Je ne connais pas le mot de passe root et ai essayé beaucoup de mots de passe, mais aucun d'entre eux n'a fonctionné.
Comment puis-je réparer cela?
Voici les étapes à suivre pour faire ceci graphiquement:
Démarrez dans un environnement Ubuntu en direct en utilisant un support de démarrage Ubuntu;
Lancez le gestionnaire de fichiers Nautilus et montez votre partition Ubunt (ici, dans l’instantané, c’est le système de fichiers de 129 Go );
(Frappé Ctrl + L pour voir l'UUID de la partition.)
Démarrer Nautilus avec le privilège root (Appuyez sur Alt + F2 et tapez gksu nautilus
et appuyez sur Entrée);
La partition Ubuntu devrait apparaître dans la barre latérale avec son UUID. Cliquez pour le monter, puis accédez au répertoire /etc
;
Dans le répertoire /etc
, faites défiler vers le bas pour rechercher le fichier nommé passwd-
et faites-en une copie dans le répertoire ( maintenez enfoncée Ctrl clé, placez le pointeur de la souris sur le fichier, maintenez enfoncé le bouton gauche de la souris , faites glisser le pointeur de la souris, puis relâchez le bouton de la souris suivi de Ctrl clé pour faire une copie dans le même répertoire; un fichier nommé passwd- (copy)
sera créé);
Sélectionnez le fichier de copie, cliquez avec le bouton droit de la souris et sélectionnez renommer . Puis renommez le fichier en passwd
;
Une fois le fichier renommé passwd
, cliquez avec le bouton droit de la souris et sélectionnez Propriétés dans le menu contextuel, puis dans l'onglet Autorisations , définissez la les autorisations appropriées, c'est-à-dire que le propriétaire root devrait avoir lire et écrire permission tandis que pour le Groupe et Autres définir l'accès à lecture seule et fermez la fenêtre des propriétés;
Maintenant, redémarrez votre système et vous devriez pouvoir vous connecter avec votre mot de passe.
Vous pouvez faire la même chose en utilisant un terminal dans un environnement en direct.
Les marches:
Démarrez pour vivre la session Ubuntu;
Ouvrez un terminal ou un terminal et tapez la commande:
Sudo fdisk -l
(et notez le nom de périphérique de votre partition Ubuntu qui sera sous la forme /dev/sdX
.)
Montez l'appareil,
Sudo mount /dev/sdXY /mnt
(repacez sdXY
avec votre périphérique cible.)
cd
vers le répertoire du système cible /etc
:
cd /mnt/etc
Utilisez le fichier de sauvegarde pour restaurer et définissez les autorisations appropriées:
Sudo cp passwd- passwd
Sudo chmod 644 passwd
Ou utilisez la sauvegarde dans /var/backups/passwd.bak
:
Sudo install -m 644 /mnt/var/backups/passwd.bak /mnt/var/backups/passwd
(comme l'a souligné Lekensteyn dans son commentaires )
Puis redémarrez votre ordinateur:
Sudo reboot
Cette question semble avoir déjà les réponses appropriées, je développerai simplement celle de @Lekensteyn comment :
Sudo cp /var/backups/passwd.bak /etc/passwd
Sudo chmod 644 /etc/passwd
Si vous êtes pouvez vous connecter, ouvrez simplement le terminal et essayez ceci:
Sudo cp /etc/passwd- /etc/passwd
Sudo chmod 644 /etc/passwd
Else
Démarrez en mode de récupération ou à partir d'Ubuntu Live Cd. Ensuite, montez votre ancien lecteur:
mkdir /olddrive
mount /dev/hda5 /olddrive
assuming that your old drive is on /dev/hda5.
then, cd to /olddrive/etc
type:
echo "root::0:0:Superuser:/:/bin/bash" > passwd
puis redémarrez. Cela ne définira pas de mot de passe pour root.
Ensuite, vous pouvez vous connecter, créer à nouveau tous vos comptes, etc.
Vous pouvez également utiliser la sauvegarde qui s'appelle (je pense) /etc/passwd-
Edit: (une autre méthode "Je n'essaie pas ça avant mais je pense que ça devrait marcher aussi")
init=/bin/bash
"cp /etc/passwd- /etc/passwd
"mount -o remount,rw /
"