Wie kann ich Benutzerkonten auf mehreren Computern konsistent halten?

14

Ich habe jetzt einen Raspberry Pi, auf dem Debian Wheezy läuft. Ich habe ein paar Maschinen (4 physische, 2 virtuelle) hier und möchte die Benutzerkonten auf diesen Maschinen vereinheitlichen.

Auf den Maschinen, die ich betreibe, sind die folgenden Debian-Derivate installiert:

  • Debian Wheezy (armhf)
  • Debian Stable (amd64)
  • Debian instabil (amd64)
  • Ubuntu 14.04 (amd64)

Wie kann ich die Benutzerkonten auf allen Computern gleichermaßen einrichten? Ich möchte, dass der Name, der lange Name, das Passwort und die UID konsistent sind.

In Zukunft möchte ich vielleicht andere Teile der Konfiguration vereinheitlichen

  • HTCondor
  • Mountpoints (Samba)
  • /etc/apt/sources.list
  • Unbeaufsichtigte Updates

Da ich verschiedene Ubuntu- und Debian-Varianten verwende, sources.listwird sich das etwas unterscheiden, aber es wird bei jeder Distribution gleich sein.

Was wäre ein guter Ansatz dafür?

Martin Ueding
quelle
1
Sie sollten alle Benutzer als ldapBenutzer einrichten.
Ramesh
1
@Ramesh Würde das bedeuten, dass sich die Benutzer nur anmelden können, wenn eine Netzwerkverbindung besteht?
Martin Ueding
Ja. Möglicherweise benötigen Sie die Netzwerkverbindung ldap, damit dies funktioniert. Dies erspart Ihnen jedoch den Aufwand, Benutzer auf allen Computern einzurichten.
Ramesh
Gibt es einen Computer, der immer eingeschaltet und über das Netzwerk erreichbar ist? Gibt es einen Computer, der immer eingeschaltet und zugänglich ist, wenn Sie Ihr Passwort ändern möchten?
Gilles 'SO - hör auf böse zu sein'
1
@ramesh können Sie haben offline mittels LDAP SSSD .
Patrick

Antworten:

12

Sie haben grundsätzlich 2 Möglichkeiten.

  1. Verwenden Sie das lokale Authentifizierungssystem jedes Computers und geben Sie Änderungen an den Anmeldeinformationen an alle weiter.
  2. Verwenden Sie einen zentralen Authentifizierungsserver.

1. Synchronisierte lokale Authentifizierung

Es gibt mehrere Produkte, die dies leicht erreichen. Marionette , Koch , Ansible und Salz sind einige der häufigsten. Alle diese Tools fallen unter das sogenannte " Konfigurationsmanagement ".

Grundsätzlich hätten Sie ein Repository, in dem Sie Ihre Authentifizierungsdaten als Code definieren. Der "Code" wäre so einfach wie eine Anweisung, die den Benutzernamen und das Hash-Passwort angibt. Sie würden diesen Code dann mit all Ihren Computern synchronisieren und das von Ihnen ausgewählte CM-Tool ausführen. Das CM-Tool aktualisiert dann die lokalen Authentifizierungsdaten jedes Benutzers (erstellt bei Bedarf auch den Benutzer).

Da Sie angegeben haben, dass Sie auch andere Konfigurationstypen ausführen möchten, ist dies möglicherweise die geeignetere Lösung.

2. Zentralisierte Authentifizierung

Die häufigste Form der zentralisierten Authentifizierung ist LDAP. Das Ausführen eines LDAP-Servers mag entmutigend erscheinen, aber es gibt einige gute Paketlösungen wie FreeIPA, die die Verwaltung vereinfachen.

Jetzt könnte einer Ihrer ersten Gedanken lauten: "Ich möchte, dass die Authentifizierung auch dann funktioniert, wenn der zentrale Server nicht verfügbar ist." Dies kann leicht mit SSSD erreicht werden . Wenn sich ein Benutzer zum ersten Mal bei einem Server anmeldet, konsultiert SSSD LDAP (oder Kerberos, falls verwendet), und wenn die Anmeldeinformationen gültig sind, werden sie auf dem lokalen Computer zwischengespeichert. Wenn der LDAP-Server nicht verfügbar ist, wird der Cache wieder verwendet. Solange sich ein Benutzer einmal angemeldet hat, kann er sich weiterhin anmelden, wenn LDAP nicht verfügbar ist.

3. Kombination der beiden

Sie können auch eine Kombination der beiden Lösungen verwenden. Dies ist in großen Unternehmensumgebungen sehr häufig, kann aber auch in kleinem Maßstab eingesetzt werden. Grundsätzlich hätten Sie einen zentralen Authentifizierungsserver und würden ein CM-Tool verwenden, um die Clients für die Verwendung zu konfigurieren.

Patrick
quelle
Vielen Dank, das sollte mir genug Ausgangspunkte geben! :-)
Martin Ueding