Samba come membro di un domino
Rendere Samba membro di un dominio non ho ancora capito se e` un'arte arcana oppure e` assai facile. Qui di seguito ci sono i miei appunti, che sono assai poco collaudati, e scritti in un momento in cui mi serviva una cosa che funziona subito senza capire perche` funzioni. Questo e` un approccio pessimo, da utente di windows, non certo da sistemista serio. Perdonatemi, cerchero` di fare meglio.
Configurazione senza winbindd
Questa e` la configurazione quick&dirty. Il server Samba autentica i propri utenti sul dominio, e se serve crea i relativi username su Linux. Questo sistema consente di:
- Accedere agli share sul server samba membro del dominio usando username e password che sono contenuti nel domain controller per il dominio.
- Avere le password sincronizzate (in realta` la password e` una sola, e` sempre sul domain controller) quindi quando l'utente cambia la password, il server samba che e` membro del domino e` accessibile con la nuova password.
- Non dover aggiungere gli utenti in /etc/passwd a mano per gli utenti del dominio, samba li crea da solo la prima volta che questi accedono ad uno share sul server membro del dominio.
I limiti di questo sistema sono:
- Gli utenti del dominio possono accedere a Samba sul server membro, ma non alla shell o ad altri servizi che si autenticano su passwd o su PAM, perche` Samba crea si` gli utenti locali, ma li crea con la password disabilitata e non li gestisce in alcun modo. E in ogni caso samba crea gli utenti locali che sono copia di quelli del dominio solo quando un utente accede per la prima volta agli share smb, e non dal momento in cui un utente esiste nel dominio.
- Se esiste un utente locale con lo stesso username di uno del dominio (tipo che esiste su passwd un utente "pippo" e in seguito un altro utente "pippo" viene aggiunto al dominio) succede un casino: l'utente pippo del dominio viene confuso con l'utente pippo locale, quindi i due potranno vedere l'uno i files dell'altro, essendo in effetti per il file system di linux lo stesso utente. Ora, se i due sono davvero lo stesso utente, e` un vantaggio, ma se non lo sono, e` un casino.
- Se si cancella un utente dal domain controller, questo non potra` piu` accedere nemmeno al server samba membro del dominio, tuttavia i suoi files, la sua home, e la sua entry in passwd del server membro resteranno li` per sempre, a meno che non vengano cancellati a mano. Si noti il punto precedente: se cancello un utente pippo dal dominio e un anno dopo ne aggiungo un altro che ha lo stesso username, esso si trovera` i files del vecchio pippo sul server e potra` leggerli, se non sono stati cancellati.
- La gestione dei gruppi non e` allineata con il dominio, quindi eventuali gruppi con i relativi permessi di accesso sul file system vanno creati e gestiti interamente sulla macchina locale a livello di /etc/group. Il member server non ha idea di quali siano i gruppi sul domain controller e di quale utente appartenga a quale gruppo.
Per configurare Samba come member server occorre avere queste direttive in smb.conf (Se fate riferimento alla pagina ../ConfigDiBase, la sezione "Comandi relativi al dominio e al browsing" va tolta in toto e sostituita con la seguente)
#Comandi relativi al dominio e al browsing workgroup = KURGAN server string = %h server (Samba %v) encrypt passwords = true passdb backend = tdbsam time server = Yes enable privileges = yes security = domain password server = *
Vale la pena di notare che la direttiva "add user script" andra` eventualmente adattata alle proprie esigenze per quanto riguarda i parametri di creazione degli utenti locali, quali umask, permessi della home directory, appartenenza ad un gruppo, eccetera, che influenzano poi i limiti di accesso degli utenti ai dati sul file system.
Dopo aver configurato Samba, occorre rendere il server membro del dominio, con il comando:
net rpc join -UAdministrator%password
Oppure, se occorre specificare il server che fa da primary domain controller:
net rpc join -S DOMPDC -UAdministrator%password
Oppure, per un dominio su windows 2000 / 2003 con Active Directory:
net ads join -UAdministrator%password