Réinstaller un /home

Ça paraît dingue, mais mon portable m’a encore lâché. Enfin : son écran seulement.

En attendant sa réparation, j’en ai encore acheté un portable, le troisième en douze mois : je commence à bien connaître l’installeur graphique. Bref.

Comme mon ancien portable fonctionnait encore, j’ai fait de mon /home une belle archive tar.

user@debianportable2:/media/user/USBstick$tar cvf archivehomeuser.tar /home/user

J’ai installé mon nouvel ordi, et donc créé un utilisateur, ce qui a créé un/home/user.

Comment faire pour que l’extraction de l’archive de mon /home remplace le /home nouvellement créé ? J’ai l’impression qu’il me faut exécuter la commande suivante :

root@debianportable3:/home# tar xvf archivehomeuser.tar

… mais les fichiers obtenus ne vont-ils pas tous appartenir à root ? Je sais, c’est une question toute bête, mais j’ai pas envie de me planter.

Bonjour…

Pourquoi ne pas faire un test en décompressant l’archive dans /tmp ?

mkdir /tmp/testhome    
mv archivehomeuser.tar /tmp/testhome/
cd /tmp/testhome
tar xvf archivehomeuser.tar
ls -lah

Si les fichiers n’ont pas les bons droits, je pense que tu peux simplement les appliquer (c’est bourrin et pas l’idéal mais bon) :

chown -R tonuser: /tmp/testhome
chmod -R 660 tonuser: /tmp/testhome

Reste à appliquer, mais je te conseil de sauvegarder (à adapter) :

cp -a /home/tonuser /tmp/testhome.bak
cp -a /tmp/testhome/tonuser /home/tonuser

Pour que l’utilisateur soit reconnu entre deux systèmes, il est nécessaire que leur UID correspondent dans /etc/passwd.

En fait j’ai copié tout simplement l’archive de mon /home dans / et j’ai fait :

root@debianportable3:/home# tar xvf archivehomeuser.tar

Ça m’a parfaitement réinstallé mon /home en lieu et place du /home créé lors de l’installation, que je n’avais même pas supprimé. Je n’ai rien eu à faire de plus : j’ai redémarré et hop ! Ma session était de nouveau là !

Je te donnais toutes ces étapes afin de justement pas écraser comme un bourrin le dossier du “nouvel” utilisateur… Enfin, l’essentiel, c’est que ce soit résolu.

Oui, c’était un très bon conseil. EN fait j’ai fait un test dans le nouveau /home, et ça m’avait créé un dossier /home/user/home/user/ ! Voilà ce qui arrive quand on n’est pas très vigilant.

C’est pour cela que j’ai placé l’archive dans / et procédé comme expliqué plus haut. Et ça a marché.

Je suppose que l’UID et le nom du compte utilisateur étaient identiques entre les 2 installations, donc tu n’as pas eu de problème pour utiliser l’ancien répertoire personnel.
Mais si jamais tu dois jongler entre les utilisateurs, les options dans la section “Handling of file attributes” du man tar peuvent être utiles.
D’après cette section, il semble que lorsque c’est root qui décompresse, les attributs des fichiers sont conservés (propriété et permissions):

 --same-owner
              Try extracting files with the same ownership as exists in the archive (default for superuser).

Très bon conseil. Merci !

Si tu te retrouves avec /home/user/home/user pourquoi ne pas avoir fait

$ mv /home/user/home/user/* ~/
$ rmdir /home/user/home

Très bonne suggestion. La réponse est toute simple : parce que je n’y ai pas pensé.