Avant de plonger dans les profondeurs de la façon de synchroniser les UID / GID sur mes différentes machines Linux, je voudrais savoir quel est réellement l'avantage?
Je sais que cela rend la synchronisation des fichiers relativement facile (car la propriété est "naturellement" conservée). Cependant, cela peut également être réalisé autrement en fonction du service de transmission.
Y a-t-il autre chose qui bénéficierait d'UID / GID cohérents?
linux
synchronization
uid
alex
la source
la source
Réponses:
dette technique
Pour les raisons ci-dessous, il est beaucoup plus simple d'aborder ce problème au début pour éviter l'accumulation de dette technique . Même si vous vous trouvez déjà dans cette situation, il vaut probablement mieux y faire face dans un avenir proche que de continuer à construire.
systèmes de fichiers en réseau
Cette question semble se concentrer sur l'étendue étroite du transfert de fichiers entre des machines avec des systèmes de fichiers locaux, ce qui permet des états de propriété spécifiques à la machine.
Les considérations relatives au système de fichiers en réseau sont facilement le plus grand cas pour essayer de garder vos mappages UID / GID synchronisés, car vous pouvez généralement jeter ce "obtenu autrement" que vous avez mentionné par la fenêtre au moment où ils entrent dans l'image. Bien sûr, vous n'avez peut-être pas de systèmes de fichiers en réseau partagés entre ces hôtes en ce moment ... mais qu'en est-il de l'avenir? Pouvez-vous honnêtement dire qu'il n'y aura jamais de cas d'utilisation pour un système de fichiers en réseau introduit entre vos hôtes actuels ou des hôtes qui seront créés à l'avenir? Il n'est pas très clairvoyant de penser le contraire.
Supposons qu'il
/home
s'agit d'un système de fichiers en réseau partagé entrehost1
ethost2
dans les exemples suivants./home/user1
appartient à un utilisateur différent sur chaque système. Cela empêche un utilisateur d'être en mesure d'accéder de manière cohérente ou de modifier son répertoire personnel sur tous les systèmes.host2
casse les autorisations surhost1
. Il peut parfois falloir plusieurs de ces tickets pour être travaillé avant que quelqu'un ne recule et se rende compte qu'un remorqueur de guerre est en jeu. La seule solution consiste à corriger les mappages d'ID en désaccord. Qui conduit à...user1
a l'ID deuser2
, maisuser2
a l'ID deuser17
... et ce n'est que le premier système du cluster) Plus vous attendez pour résoudre le problème, plus ces chaînes peuvent devenir complexes, nécessitant souvent le temps d'indisponibilité des applications sur plusieurs serveurs afin de synchroniser les choses correctement.user2
onhost2
a le même UID queuser1
onhost1
, ce qui leur permet d'écrire/home/user1
surhost2
sans le savoiruser1
. Ces modifications sont ensuite évaluéeshost1
avec les autorisations deuser1
. Qu'est ce qui pourrait aller mal? (siuser1
est un utilisateur de l' application, quelqu'un dev va découvrir qu'il est inscriptible et va faire des changements. c'est un temps fait ses preuves.)Il existe d'autres scénarios, et ce ne sont que des exemples des plus courants.
les noms ne sont pas toujours une option
Tous les scripts ou fichiers de configuration écrits avec des ID numériques deviennent intrinsèquement non transférables dans votre environnement. Généralement, ce n'est pas un problème car la plupart des gens ne codent pas en dur à moins qu'ils ne soient absolument tenus de le faire ... mais parfois l'outil avec lequel vous travaillez ne vous donne pas le choix. Dans ces scénarios, vous êtes obligé de gérer n versions différentes du script ou du fichier de configuration.
Exemple:
pam_succeed_if
vous permet d'utiliser les champs deuser
,uid
etgid
... une option « groupe » brille par son absence. Si vous étiez placé dans une position où plusieurs systèmes étaient censés implémenter une certaine forme de restriction d'accès basée sur le groupe, vous auriez n différentes variantes des configurations PAM. (ou au moins un seul GID sur lequel vous devez éviter les collisions)gestion centralisée
la réponse de natxo a assez bien couvert cela.
la source
une fois que vous atteignez une certaine taille (et c'est toujours plus tôt que vous ne le pensez), vous vous rendrez compte que changer vos mots de passe ou désactiver des comptes pour quelqu'un sur tous les hôtes est un PITA. C'est pourquoi les gens utilisent des systèmes avec des bases de données LDAP (ou NIS mais ne le font pas, pas sûr de nos jours) comme openldap ou de nos jours l'excellent freeipa.
Vous conservez toutes les informations des comptes / groupes dans une base de données centrale, tous les hôtes partagent ces informations. Vous pouvez faire beaucoup plus de choses à partir de là: utiliser les informations des utilisateurs pour les autorisations de fichiers, bien sûr, mais aussi créer des utilisateurs virtuels pour toutes les applications qui ont des liaisons LDAP au lieu d'avoir à y créer vos utilisateurs également (de nombreuses applications Web peuvent utiliser ldap pour leur base de données utilisateurs), maintenir une base de données centrale sudo rules, distribuer votre environnement autofs, conserver vos zones DNS, ...
la source