web-dev-qa-db-fra.com

Sauvegarder et restaurer les mots de passe des utilisateurs

Est-il possible de faire une copie de fichier pour sauvegarder le mot de passe des utilisateurs, puis de les restaurer en les recopiant?

Il semble que le fichier en question soit /etc/shadow selon http://en.wikipedia.org/wiki/Passwd#Shadow_file

Mon intention est de changer temporairement le mot de passe d'un utilisateur, Sudo passwd user. Le mot de passe d'origine m'est inconnu. Je voudrais ensuite restaurer le mot de passe d'origine en remplaçant le fichier /etc/shadow par la copie précédente. C'est à dire.

Sudo cp /etc/shadow /etc/shadow.backup
Sudo passwd user
Sudo cp /etc/shadow.backup /etc/shadow
Sudo rm /etc/shadow.backup

Est-ce possible ou vais-je ruiner le compte?

1
Captain Giraffe

Tant qu'aucun autre changement ne se produit dans /etc/shadowo/etc/passwd, cela devrait fonctionner correctement. Si un utilisateur est ajouté, supprimé ou modifié, puis que vous restaurez une ancienne version, des problèmes peuvent survenir. Si vous pouvez garantir que personne ne fera d'opération impliquant /etc/passwd ou /etc/shadow, tout ira bien.

Vous pouvez également modifier /etc/shadow, copier le mot de passe chiffré dans un endroit sûr, modifier votre mot de passe, puis, le cas échéant, le rétablir. De cette façon, vous n'avez pas besoin de toucher à autre chose.

# Obtain the old password and save it in a file
echo $(Sudo grep $USER /etc/shadow | cut -f 2 -d ':') >/safe/encrypted-pass
# Here, change the password, do whatever you need, then..
Sudo usermod -p $(cat /safe/encrypted-pass) $USER

Notez que l'option -p sur usermod "n'est pas recommandée car le mot de passe (ou le mot de passe chiffré) sera visible par les utilisateurs répertoriant les processus." C'est donc à vous de décider s'il s'agit d'un risque qui vous concerne.

Je préfère utiliser des commandes pour faire ce genre de manipulation, mais vous pouvez accomplir la même chose manuellement avec un simple éditeur de texte.

2
roadmr