Come posso mantenere gli account degli utenti coerenti su più macchine?


16

Ora ho un Raspberry Pi che esegue Debian Wheezy. Ho un paio di macchine (4 fisiche, 2 virtuali) sedute qui e vorrei unificare gli account utente su quelle macchine.

Sui computer che eseguo sono installati i seguenti derivati ​​Debian:

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

Come posso configurare gli account utente su tutte le macchine allo stesso modo? Voglio che il nome, il nome lungo, la password e l'UID siano coerenti.

In futuro, vorrei unificare altre parti della configurazione, forse

  • HTCondor
  • Mountpoints (Samba)
  • /etc/apt/sources.list
  • Aggiornamenti automatici

Dal momento che utilizzo diverse varianti di Ubuntu e Debian, le sources.listdifferenze differiranno un po ', ma sarà lo stesso su ogni distribuzione.

Quale sarebbe un buon approccio a questo?


1
È necessario configurare tutti gli utenti come ldaputenti.
Ramesh,

1
@Ramesh Significherebbe che gli utenti possono accedere solo quando c'è una connessione di rete?
Martin Ueding,

Si. Potrebbe essere necessaria la connessione di rete per ldapfunzionare. Ma ti fa risparmiare il dolore di impostare gli utenti in tutte le macchine.
Ramesh,

Esiste una macchina sempre accesa e accessibile attraverso la rete? C'è una macchina che è sempre accesa e accessibile quando si desidera modificare la password?
Gilles 'SO- smetti di essere malvagio' il

1
@ramesh Puoi usare LDAP offline usando SSSD .
Patrick,

Risposte:


14

Fondamentalmente hai 2 opzioni.

  1. Utilizzare il sistema di autenticazione locale di ogni macchina e inviare a tutti i cambiamenti delle credenziali.
  2. Utilizzare un server di autenticazione centralizzato.

1. Autenticazione locale sincronizzata

Esistono più prodotti che lo realizzano facilmente. Puppet , Chef , Ansible e Salt sono alcuni dei più comuni. Tutti questi strumenti rientrano nella cosiddetta " Gestione della configurazione ".

Fondamentalmente avresti un repository in cui definisci le tue credenziali di autenticazione come codice. Il "codice" sarebbe semplice come una direttiva che specifica il nome utente e la password con hash. Sincronizzeresti quindi questo codice su tutte le tue macchine ed eseguiresti qualunque strumento CM hai scelto. Lo strumento CM aggiorna quindi le credenziali di autenticazione locale di ciascun utente (creando anche l'utente se necessario).

Dal momento che hai detto che vuoi fare anche altri tipi di configurazione, questa potrebbe essere la soluzione più appropriata.

2. Autenticazione centralizzata

La forma più comune di autenticazione centralizzata è LDAP. L'esecuzione di un server LDAP può sembrare scoraggiante, ma ci sono alcune buone soluzioni in pacchetto come FreeIPA che lo rendono facilmente gestibile.

Ora uno dei tuoi primi pensieri potrebbe essere: "Voglio che l'autenticazione funzioni anche se il server centrale è inattivo". Questo è facilmente realizzabile usando SSSD . Quando un utente accede per la prima volta a un server, SSSD consulta LDAP (o Kerberos se utilizzato) e, se le credenziali sono valide, le memorizza nella cache sul computer locale. Se il server LDAP non è disponibile, ricorre all'utilizzo della sua cache. Pertanto, fintanto che un utente ha effettuato l'accesso una volta, sarà in grado di continuare ad accedere se LDAP non è disponibile.

3. Combinazione dei due

È inoltre possibile utilizzare una combinazione delle due soluzioni. Questo è molto comune negli ambienti aziendali su larga scala, ma può essere impiegato anche su piccola scala. Fondamentalmente avresti un server di autenticazione centralizzato e useresti uno strumento CM per configurare i client per usarlo.


Grazie mille, questo dovrebbe darmi abbastanza punti di partenza! :-)
Martin Ueding il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.