Rapatrier UIDs et GIDs

Bonjour,

J’ai un “vieux” serveur Debian qui me sert de serveur data. Ce serveur se sert de l’Active Directory pour authentifier les utilisateurs de Samba.
Au grès du temps, j’ai créé et supprimé des utilisateurs/groupes dans l’AD, ce qui fait que les UIDs et GIDs ne se “suivent” plus sur l’ancien serveur (10001, 10002, 10004, 10006 etc )
Sur le nouveau serveur, lorsque je fais un “getent passwd”, les UIDs et GIDs se ‘suivent’ bien, ce qui fait que lorsque j’aurais fait ma copie de données avec rsync qui conserve les UIDs/GIDs et les permissions des fichiers, tout sera décalé et je vais devoir tout chmoder à la main si je veux que tous mes utilisateurs retrouvent leurs petits…

Comment faire pour “extraire” ou je ne sais quoi les UIDs et GIDs de mon ancien serveur pour les injecter sur le nouveau ?

Merci par avance

Nicolas

Je me trompe peut-être, mais les UID et GID sont uniquement inscrits dans /etc/passwd et /etc/group.
Donc tu as juste à comparer ces fichiers sur un sytème et l’autre (un diff) et résoudre la situation à la main (ou pas).

Sinon, il existe sûrement des commandes pour réaffecter un UID/GID à un utilisateur. Voir [mono]usermod[/mono]

Salut,

J’en prends cinq.

Sans rentrer dans les détails, j’ai croisé ce souci (il-y-a deux ans environ) sur un serveur distant (en prod) lors d’une restauration nocturne et urgente de surcroît.

Sur le coup, j’avais corrigé la situation à grand coup de [mono]chown[/mono] et [mono]chmod[/mono] deci delà bien placés.

Le calme revenu et quelques heures plus tard, j’ai compris. :083

Pour faire très simple.

Il faut comprendre que d’une machine à une autre (local ou distante) les installations (les besoins) diffères.

Il en découle obligatoirement (du point de vue local/distant) des groups, propriétaires et des mots de passe, différents.

J’avais donc corrigé le tir lors de mes sauvegardes de la manière suivante.

  • Depuis la machine local.

Une copie (en .old) des fichiers¹ [mono]group[/mono], [mono]passwd[/mono], [mono]shadown[/mono] et [mono]gshadow[/mono].

  • Depuis le serveur distant une copie¹ également rapatrié en local.

  • Avant de lancer mes sauvegardes rsync local/distante.
    local -> ssh <- rsync -> <- distant -> sauvegarde_dd_externe_(local)

J’ai mis en place un script en local qui :

Remplace les fichiers¹ locaux par ceux du distant.

rysnc terminé (attention : aucune opération/install/déisntall/mise à jour/etc … en local durant ce laps de temps) je rétablis mes fichiers¹ en .old sur la machine local.

PS : est-ce clair ?

PS-1 : je n’ai pas encore pris le temps de faire plus propre, cela viendra. :wink: