Comment puis-je garder les comptes utilisateur cohérents sur plusieurs machines?


16

J'ai maintenant un Raspberry Pi qui exécute Debian Wheezy. J'ai quelques machines (4 physiques, 2 virtuelles) assis ici et je voudrais unifier les comptes d'utilisateurs sur ces machines.

Les machines que j'exécute sont équipées des dérivés Debian suivants:

  • Debian Wheezy (armhf)
  • Écurie Debian (amd64)
  • Debian instable (amd64)
  • Ubuntu 14.04 (amd64)

Comment puis-je configurer les comptes d'utilisateurs sur toutes les machines de manière égale? Je veux que le nom, le nom long, le mot de passe et l'UID soient cohérents.

À l'avenir, je voudrais unifier d'autres parties de la configuration, peut-être

  • HTCondor
  • Points de montage (Samba)
  • /etc/apt/sources.list
  • Mises à jour sans assistance

Étant donné que j'utilise différentes variantes d'Ubuntu et de Debian, le sources.listsera un peu différent, mais ce sera le même sur chaque distribution.

Quelle serait une bonne approche à ce sujet?


1
Vous devez configurer tous les utilisateurs en tant ldapqu'utilisateurs.
Ramesh

1
@Ramesh Cela signifierait-il que les utilisateurs ne peuvent se connecter que lorsqu'il y a une connexion réseau?
Martin Ueding

Ouais. Vous pourriez avoir besoin de la connexion réseau pour ldapfonctionner. Mais cela vous évite d'avoir à configurer des utilisateurs sur toutes les machines.
Ramesh

Y a-t-il une machine qui est toujours allumée et accessible via le réseau? Y a-t-il une machine qui est toujours allumée et accessible lorsque vous souhaitez changer votre mot de passe?
Gilles 'SO- arrête d'être méchant'

1
@ramesh Vous pouvez avoir LDAP hors ligne en utilisant SSSD .
Patrick

Réponses:


14

Vous avez essentiellement 2 options.

  1. Utilisez le système d'authentification local de chaque machine et transférez les modifications des informations d'identification à chacune d'entre elles.
  2. Utilisez un serveur d'authentification centralisé.

1. Authentification locale synchronisée

Il existe plusieurs produits qui accomplissent cela facilement. Puppet , Chef , Ansible et Salt sont quelques-uns des plus courants. Tous ces outils relèvent de ce que l'on appelle la " gestion de la configuration ".

Fondamentalement, vous auriez un référentiel dans lequel vous définissez vos informations d'authentification comme code. Le "code" serait aussi simple qu'une directive qui spécifie le nom d'utilisateur et le mot de passe haché. Vous synchroniseriez alors ce code sur toutes vos machines et exécuterait n'importe quel outil CM que vous avez choisi. L'outil CM mettrait alors à jour les informations d'authentification locales de chaque utilisateur (créant également l'utilisateur si nécessaire).

Puisque vous avez dit que vous souhaitiez également effectuer d'autres types de configuration, cela pourrait être la solution la plus appropriée.

2. Authentification centralisée

La forme d'authentification centralisée la plus courante est LDAP. L'exécution d'un serveur LDAP peut sembler intimidante, mais il existe de bonnes solutions packagées telles que FreeIPA qui le rendent facilement gérable.

Maintenant, une de vos premières réflexions pourrait être: "Je veux que l'authentification fonctionne même si le serveur central est en panne". Ceci est facilement accompli en utilisant SSSD . Lorsqu'un utilisateur se connecte pour la première fois à un serveur, SSSD consulte LDAP (ou kerberos s'il est employé), et si les informations d'identification sont valides, il les met en cache sur la machine locale. Si le serveur LDAP n'est pas disponible, il revient à utiliser son cache. Ainsi, tant qu'un utilisateur ne s'est connecté qu'une seule fois, il pourra continuer à se connecter si LDAP n'est pas disponible.

3. Combinaison des deux

Vous pouvez également utiliser une combinaison des deux solutions. Ceci est très courant dans les environnements d'entreprise à grande échelle, mais peut également être utilisé à petite échelle. Fondamentalement, vous auriez un serveur d'authentification centralisé et vous utiliseriez un outil CM pour configurer les clients pour l'utiliser.


Merci beaucoup, cela devrait me donner assez de points de départ! :-)
Martin Ueding
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.