Avant de réinstaller Ubuntu 12.04 LTS, j'ai démonté le répertoire/home. Après une nouvelle réinstallation, j'ai recréé certains des utilisateurs et installé le paquet ubuntu-desktop, puis j'ai remonté l'ancien répertoire/home. Tous les documents ont été restaurés et je n’ai aucun problème tant que je me connecte à Shell. Cependant, lorsque j'essaie de me connecter à l'interface graphique, elle ne fait que recharger l'écran de connexion. Cela se produit depuis que j'ai inclus l'ancien répertoire/home dans /etc/fstab
.
En essayant de suivre la solution ici , j'ai cherché les fichiers .Xauthority dans le répertoire /home
de chaque utilisateur et j'ai remarqué quelque chose de bizarre, les utilisateurs semblaient avoir été mélangés. Par exemple, ls -lah | grep Xauthority
dans /home/bob
s'affichera comme suit:
-rw------- 1 emily emily 53 Nov 29 10:19 .Xauthority
etc. J'imagine que je n'ai pas recréé les utilisateurs dans le même ordre que dans l'ancien système, de sorte que les choses se sont gâtées lorsque j'ai monté l'ancien répertoire /home
. Pourtant! Je dois pouvoir brancher les anciens fichiers de répertoire /home
tels quels car ils sont plusieurs TB et je n'ai pas l'espace nécessaire pour les transférer librement ici et là, et je ne suis pas autorisé à le faire. supprimer quelque chose. Que dois-je faire pour résoudre ce problème?
Est-ce une bonne idée de remplacer tous les fichiers cachés de chaque ancien répertoire /home/user
par les nouveaux?
[Information additionnelle]
Contenu de ls -l /home
(après le montage de l'ancien /home
); remarque: lost+found
n'était PAS supposé être un utilisateur.
total 36
drwxr-xr-x 22 bob bob 4096 Mar 11 12:23 alice
drwxr-xr-x 44 marc marc 4096 Mar 11 12:21 emily
drwxr-xr-x 23 1004 1004 4096 Jul 29 2013 bob
drwxr-xr-x 4 1005 1005 4096 Jul 30 2013 ken
drwx------ 2 root root 16384 Mar 27 2012 lost+found
drwxr-xr-r 40 emily emily 4096 Mar 11 12:49 marc
Contenu de cat /etc/passwd
(réservé aux utilisateurs énumérés ci-dessus):
root:x:0:0:root:/root:/bin/bash
marc:x:1000:1000:marc,,,:/home/marc:/bin/bash
emily:x:1001:1001:emily,,,:/home/emily:/bin/bash
bob:x:1002:1002:bob,,,:/home/bob:/bin/bash
ken:x:1003:1003:ken,,,:/home:ken:/bin/bash
Remarque: l'utilisateur alice
n'a pas été recréé après la réinstallation du système d'exploitation, car le compte n'était plus nécessaire.
Sortie de lsblk
:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
+sda1 8:1 0 285M 0 part
+sda2 8:2 0 1K 0 part
+sda5 8:5 0 18.6G 0 part
+sda6 8:6 0 93.1G 0 part /home
+sda7 8:7 0 93.1G 0 part
+sda8 8:8 0 698.4G 0 part /home/marc/Data
+sda9 8:9 0 9.3G 0 part [SWAP]
+sda10 8:10 0 18.6G 0 part /
sr0 11:0 1 1024M 0 rom
sdb 8:16 0 1.8T 0 disk
+sdb1 8:17 0 1.8T 0 part /home/marc/Data2
sdc 8:32 0 1.8T 0 disk
+sdc1 8:33 0 200M 0 part
+sdc2 8:34 0 465.8G 0 part /home/marc/USB_Disk/Disk1
+sdc3 8:35 0 465.8G 0 part /home/marc/USB_Disk/Disk2
+sdc4 8:36 0 465.8G 0 part /home/emily/Data
+sdc5 8:37 0 465.6G 0 part /var/www
sdf 8:80 0 3.7T 0 disk
+sdf1 8:81 0 1.8T 0 part /home/ken
+sdf2 8:82 0 1.8T 0 part /home/bob
sde 8:64 1 29.8G 0 disk
+sde1 8:65 1 29.8G 0 part [SWAP]
Comme vous pouvez le constater, l'utilisateur marc
voit ses documents brisés sur un certain nombre de disques et de partitions.
ln -n
vous montrera ce que le système de fichiers pense que l'UID et les GID devraient être pour les utilisateurs. Voici un exemple de mon système.
$ ls -ln /home/
total 12
drwxr-xr-x 5 111 120 4096 Mar 15 10:11 hts
drwxr-xr-x 11 1000 1000 4096 Mar 15 12:34 oli
drwxr-xr-x 4 1001 1001 4096 Mar 13 08:46 test
Dans ce système, oli
a le bon UID de 1000, mais si je faisais quelque chose pour que ce soit 1001
, je pourrais simplement utiliser usermod
pour le modifier. Disons que je veux échanger les UID de oli
et test
. Il s’agit d’un jeu à trois sauts car deux utilisateurs ne peuvent pas partager un UID. Ils peuvent cependant partager un groupe.
Sudo usermod -u 1099 -g 1000 test
Sudo usermod -u 1001 -g 1001 oli
Sudo usermod -u 1000 test
ne note: Si votre utilisateur actuel est l’un des utilisateurs de Changearound, Sudo su
avant de tout lancer et de tout exécuter en tant que root. Rappelez-vous simplement que la sécurité est désactivée. Vous ne voulez pas vous engager à moitié dans ce processus et avoir vos privilèges Sudo dérégler sur vous.
Vous devrez jouer ce genre de ballet jusqu'à ce que les noms d'utilisateur dans/home/soient alignés avec leurs UID (comme indiqué dans ls -ln /home
). Alternativement, vous pouvez modifier tous les fichiers avec quelques appels find
mais je pense personnellement que c'est une grosse perte de temps. Il est plus facile, plus rapide et potentiellement moins destructeur de résoudre ce problème de manière centralisée via le système utilisateur.
La prochaine fois, pensez à vérifier les UID à l’avance. L’argument --uid nnn
sur adduser
rendra le processus sans douleur.