Samba e Active Directory (3 di 3): configurare pam per l’autenticazione locale

75

samba

Nel precedente articolo sono stati illustrati i metodi per effettuare delle interrogazioni ad un dominio Active Directory attraverso una macchina Linux al cui interno è configurato SAMBA. Nell’ultimo esempio illustrato l’esito dell’interrogazione presentava un elenco del tutto simile al contenuto del file /etc/passwd che in ogni sistema Linux contiene le informazioni di accesso degli utenti. La riflessione nata spontaneamente è quindi se si può fare in modo che il sistema sia configurato per supportare l’autenticazione via Active Directory in fase di login. La riposta è sì, ecco spiegato come.

Condividere una cartella

La configurazione illustrata nel primo articolo della serie consente di autenticare l’accesso a cartelle condivise mediante le credenziali presenti nel Active Directory.
Per condividere una cartella è sufficiente aggiungere al file di configurazione di SAMBA /etc/samba/smb.conf una dichiarazione come la seguente:

[Test]
        comment = Test
        path = /samba/test
        write list = DOMINIO.IT/user1
        read list = @"DOMINIO.ITgruop1"
        read only = Yes
        browseable = Yes
        create mask = 0775
        directory mask = 0775

dopo aver effettuato il reload del servizio attraverso il comando:

$ /etc/init.d/samba reload

la directory, supponendo che l’indirizzo IP della macchina sia 192.168.0.100, sarà disponibile per l’accesso dalla rete all’indirizzo //192.168.0.100/Test. L’utente DOMINIO.ITuser1 (così andrà digitato alla schermata di login) avrà il permesso di scrittura mentre tutti gli utenti del gruppo DOMINIO.ITgroup1 potranno accedere in lettura alla condivisione.

Ma questa è solo la punta dell’iceberg. Come già detto, la configurazione di SAMBA permette di sfruttare il metodo di autenticazione in modo che il sistema stesso in fase di login si riferisca al dominio Active Directory.

PAM, brevemente

PAM (Pluggable Authentication Modules) definisce un metodo standard ad alto livello per gestire l’autenticazione. Questo strato è comune a tutti i sistemi Linux (sebbene le varie versioni non operino tutte allo stesso modo) e consente a coloro i quali sviluppano servizi con autenticazioni proprie di creare moduli che rispettino l’interfaccia di programmazione relativa a PAM.
In questo modo, potenzialmente, qualunque sistema di autenticazione può essere integrato con il login di sistema.
Una panoramica dettagliata di quello che è PAM e di come funziona è disponibile presso Kernel.org, precisamente a questo link: http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html.

Integrazione di winbind con PAM per il login via Active Directory

La configurazione di PAM all’interno del sistema è contenuta in una serie di file, in Debian Lenny, la distribuzione utilizzata in questa serie di articoli, tali file si trovano nella cartella /etc/pam.d:

$ ls -1 /etc/pam.d/
chfn
chsh
common-account
common-auth
common-password
common-session
cron
login
omauth
other
passwd
samba
ssh
su

In particolare i file interessati nella fase di login sono common-account, common-auth e common-session.

La componente SAMBA che gestisce l’interfacciamento con Active Directory è, come già spiegato, winbind. Il pacchetto fornito con le maggiori distribuzioni fornisce, fra gli altri, quello che è il file base per l’introduzione di Active Directory nel login di sistema: pam_winbind.so. Tale file dovrà essere introdotto all’interno della configurazione del sistema di login.

Il primo file ad essere modificato dovrà essere /etc/pam.d/common-account il cui contenuto dovrà essere il seguente:

account sufficient      pam_winbind.so
account required        pam_unix.so

Questo file di default controlla che la password dell’utente non sia scaduta. Con l’aggiunta della riga relativa a winbind inoltre assume come sufficiente la credenziale verificata da Active Directory.

Il secondo file da considerare sarà /etc/pam.d/common-auth che di default impone l’utilizzo del meccanismo UNIX standard per l’autenticazione. Tale file dovrà assumere questo contenuto:

auth    sufficient      pam_winbind.so
auth    required        pam_unix.so nullok_secure use_first_pass

Quanto inserito comunica al sistema di considerare sufficiente l’avvenuta autenticazione con winbind. Nella seconda riga viene aggiunto il parametro use_first_pass in modo che venga utilizzata la prima password inserita per autenticare l’utente e prevenire una doppia richiesta di inserimento per la parola d’ordine.

L’ultimo file che andrà modificato è /etc/pam.d/common-session che contiene le informazioni relative alle sessioni interattive e non che l’utente potrà avviare:

session required        pam_unix.so
session required        pam_mkhomedir.so skel=/etc/skel umask=0022

rispetto al default viene aggiunta la riga relativa al modulo pam_mkhomedir.so per fare in modo che il sistema per ogni utente identificato che non possiede una home directory ne crei una ex-novo partendo dalle specifiche presenti nel file di /etc/skel con i permessi di scrittura relativi.

Prova di login

A questo punto il sistema è pronto a permettere il login alle utenze Active Directory, relativamente a tutti i servizi, compreso ssh:

$ ssh "DOMINIO.IT\user1"@192.168.0.100
DOMINIO.ITuser1@192.168.0.100's password: 
Creating directory '/home/DOMINIO.IT/user1'.
Linux anomalia 2.6.26-1-686 #1 SMP Fri Mar 13 18:08:45 UTC 2009 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
DOMINIO.IT\user1@anomalia:~$ 

Essendo il primo tentativo di login effettuato e data la configurazione PAM precedentemente illustrata, il sistema ha creato la directory /home/DOMINIO.IT/user1.
Nella cartella /home/DOMINIO.IT verranno pertanto registrate tutte le home directories relative agli utenti:

$ ls -la /home/DOMINIO.IT/
totale 12
drwxr-xr-x 3 root                    root                             4096  9 apr 17:32 .
drwxr-xr-x 3 root                    root                             4096  9 apr 17:32 ..
drwxr-xr-x 2 DOMINIO.IT\user1 DOMINIO.IT\domain users 4096  9 apr 17:32 user1

L’accesso al sistema degli utenti Active Directory è garantito nella stessa medesima forma degli utenti di sistema standard.

Conclusioni

Questa panoramica di SAMBA ha voluto illustrare quello che è lo stato dell’arte dell’integrazione tra SAMBA e Microsoft Active Directory ad oggi, ma moltissime sono le novità che bollono in pentola dal team di sviluppo del progetto Samba. La versione 4 è ormai una realtà e sebbene la strada verso la prima release stabile sia lunga, le aspettative in merito sono altissime. Questa versione sarà la prima ad integrare la completa gestione di Active Directory ed un’altra serie di importanti novità che potranno, perché no, essere argomento di un prossimo articolo.

Articoli della serie

Samba e Active Directory (1 di 3): diventare parte di un Dominio
Samba e Active Directory (2 di 3): interrogare il dominio
Samba e Active Directory (3 di 3): configurare pam per l’autenticazione locale

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

75 risposte a “Samba e Active Directory (3 di 3): configurare pam per l’autenticazione locale”

  1. Avatar Marco
    Marco

    Ciao! Complimenti per la guida!! Direi perfetta 😀 l’unico problema che ho riscontrato, è che non riesco a gestire i permessi degli utenti di cominio!!Sembra che vengano utilizzati solo quelli locali.. e quindi tutti (utenti di dominio) hanno gli stessi permessi! 🙁

    Grazie

  2. Avatar Raoul Scarazzini

    Ciao Marco,
    grazie per i complimenti. Riguardo al tuo problema, dovresti essere più specifico: abbiamo gestito installazioni piuttosto complesse organizzando accessi attraverso gruppi e configurazioni specifiche per cui credo possiamo essere in grado di aiutarti. Anzitutto il tuo obiettivo qual’è?

  3. Avatar Marco
    Marco

    Grazie della risposta!
    Il mio obiettivo è utilizzare un server linux con samba come nas. Vorrei poter assegnare qualsiasi permesso alle cartelle condivise, che potranno essere lette/scritte da uno o più utenti.
    Attualmente riesco ad accedere alla cartella test, perchè sono utente del dominio(da un pc non nel dominio,chiede giustamente user e password), ma non riesco a definire i permessi di lettura o scrittura. Come se gli utenti impostati nel file smb.conf venissero ignorati.
    Se invece imposto “valid users = nome_utenti_ammessi” non mi fa più accedere chiedendo mostrando sempre la finestra di login.

  4. Avatar Marco
    Marco

    Diciamo che funziona tutto perfettamente fino alla parte 2di3 di questa guida

  5. Avatar Marco
    Marco

    Spero di non sembrare seccante, ma volevo informarti sulle novità 🙂
    Allora, “ho scoperto” che come detto prima, riguardo ai permessi cioò che scrivo nel file, non viene eseguito, mentre ho provato ad agire da linea di comando e con chown, chgrp e chmod riesco a fare tutto 😀 Ma non so se è questo il metodo giusto!

  6. Avatar Raoul Scarazzini

    Ciao Marco,
    non sei affatto seccante, figurati. Il concetto è che attraverso le configurazioni illustrate nell’articolo i permessi locali possono essere associati a permessi active directory. E l’approccio deve essere quello: non basta dire a SAMBA “a questo share può accedere questo gruppo/utente”, tali permessi devono esistere EFFETTIVAMENTE sul filesystem.
    Quindi è corretto impostare prima di tutto attraverso chown, chgrp e via dicendo i permessi sulle cartelle locali.
    Felice che tu abbia risolto, a presto!

  7. Avatar Marco
    Marco

    Quindi questo è effettivamente il metodo corretto?
    E se devo assegnare i permessi di scrittura di una cartella a più persone come faccio? Devo creare ogni volta un gruppo?
    Potrei farti altre domande se a te non scoccia?

    Grazie mille

  8. Avatar Raoul Scarazzini

    Direi che il metodo corretto è proprio questo. Del resto si applica a tutti i sistemi Linux in generale, a prescindere da Active Directory.
    L’ideale per come la vedo io è questa situazione: hai utente1 ed utente2 che appartengono a gruppo1 e devono accedere alla directory dir1.
    I permessi sulla directory saranno impostati con il setgid, così:

    # chgrp gruppo1 dir1
    # chmod 2770 dir1

    In questo modo tutti gli appartenenti al gruppo gruppo1 potranno scrivere in dir1 e tutti file e directory creati nella dir apparterranno al gruppo gruppo1.
    Sostituisci a gruppo1 il tuo gruppo Active Directory ed il gioco è fatto.

  9. Avatar Marco
    Marco

    Ok, ma l’aspetto negativo, rispetto ad un nas ad esempio, è che per ogni cartella dove devono avere accesso più utenti, devo ogni volta creare un gruppo… potrei ritrovarmi così anche 50 gruppi!.. Ma è possibile che un utente appartenga a più gruppi?

  10. Avatar Raoul Scarazzini

    Beh credo sia tutto relativo, in un NAS credo che comunque i permessi li devi impostare.
    L’indubbio vantaggio di usare AD è che puoi gestire tutto in maniera centralizzata. In merito ai 50 gruppi inevitabilmente tutto dipende dalla complessità della tua architettura.
    Un utente può appartenere a quanti gruppi vuoi.

  11. Avatar Marco
    Marco

    Va bene, grazie 😀
    Però in un nas è meno macchinoso perchè non devi creare gruppi, ma associ gli utenti direttamente. (E tu dirai..usa un nas allora! 😛 )
    approfitto della conoscenza se permetti 😛
    Ho notato che riavviando il servizio samba, mi sega la connessione da risorse di rete… quindi il collegamento con i file, è normale?

    Ma dopo aver configurato i permessi da linea di comando, per una cartella Samba allora bastano 4 righe così?:
    [nomecartella]
    path = /samba/nomecartella
    browseable = yes
    writeable = yes

  12. Avatar Raoul Scarazzini

    Il comportamento di samba con connessioni aperte che vengono abbattute devo verificarlo, da quel che ricordo non dovrebbero verificarsi disconnessioni, ma non ne ho la certezza.
    Per quanto riguarda le share, per come la vedo io dovresti usare oltre alle opzioni indicate anche questo:

    valid users = @”DOMINIO\gruppo”
    write list = @”DOMINIO\gruppo”

    ma rispetto alla configurazione che hai creato questo è utile soprattutto ai fini di una coerenza generale.

  13. Avatar Marco
    Marco

    Ho verificato che se uso questo comando “valid users = @”DOMINIO\gruppo””
    non mi fa accedere più alla cartella chiedendo sempre user e password..

  14. Avatar Raoul Scarazzini

    Ecco, questo non dovrebbe accadere.
    Ci dev’essere qualcosa che non va nella configurazione. Dovresti spulciare i log e capire cosa contengono, in particolare il /var/log/samba/log.smbd e vedere esattamente dove e come si verifica l’errore.

  15. Avatar Marco
    Marco

    Ok, verifico.. Ma come mai nell’esempio più sopra hai indicato # chmod 2770 dir1?
    Non sono tre i numeri da indicare? Che corrisposono a Proprietario-Gruppo-Altri.
    In “valid users = DOMINIO/utente” è possibile scrivere più utenti?
    O bisogna usare sempre i gruppi?

  16. Avatar Marco
    Marco

    Mi correggo riguardo a:
    “Ho verificato che se uso questo comando “valid users = @”DOMINIO\gruppo””
    non mi fa accedere più alla cartella chiedendo sempre user e password..”

    Non mi da più questo problema.

  17. Avatar Raoul Scarazzini

    Il motivo del 2 prima del 770 nel chmod è il setgid, leggi qui: http://it.wikipedia.org/wiki/Setuid_e_setgid.

  18. Avatar Raoul Scarazzini

    Ecco, così ha senso 😉

    A presto!

  19. Avatar Marco
    Marco

    Grazie ancora di tutto!
    Solo un’ultima cosa, ho creato i vari gruppo in active direcotry su W2003, ma con chgrp me li riconosce, ma poi gli utente appartenenti al gruppo non riescono ad accedere alle cartelle! ;(
    Ho scordato qualcosa?
    Gruppi windows-> utenti windows-> chgrp gruppo_windows

  20. Avatar Raoul Scarazzini

    Direi che la procedura è quella.
    Se poi il sistema comunque i gruppi li riconosce, vuol dire che tutto funziona.
    Prova ad effettuare un reload di Samba.

  21. Avatar Marco
    Marco

    Ha preso a funzionare dopo 2 restart di samba…vabbè!
    Hai detto che ti è capitato di fare configurazioni complesse, mi se è posto il problema di avere che 3 utenti debbano scrivere su una cartella(creo il gruppo ok..), ma altri 3 devono solo poter leggere… Come assegno questi permessi?
    Mi sembra che in linux esista solo proprietario e gruppo proprietario.. O sbaglio?

  22. Avatar Raoul Scarazzini

    Crei un gruppo in lettura ed un gruppo in scrittura e li gestisci con read list e write list.
    Se la cosa si complica ulteriormente puoi pensare di usare le ACL posix, ma lì si complica davvero 🙂

  23. Avatar Marco
    Marco

    Ri-ciao! Mi è sorto un nuovo dubbio, può essere che la modifica al file /etc/pam.d/common-auth
    centri con il fatto che ora il sistema mi richiede sempre la password di root 2 volte e non 1?

    auth sufficient pam_winbind.so
    auth required pam_unix.so nullok_secure use_first_pass

  24. Avatar Raoul Scarazzini

    Ciao Marco,
    la configurazione di quel file è corretta.
    Controlla gli altri e soprattutto cosa viene loggato nel file /var/log/auth.log quando cerchi di autenticarti.

  25. Avatar Marco
    Marco

    Grazie della risposta, e scusa se ti disturbo spesso, sto cercando di risolvere un problema lagato a i file access con Samba; praticamente tutti possono leggere e scrivere il file, ma se vi accedono più persone contemporaneamente, poco dopo appare un messaggio d’errore di rete. Leggevo qui http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/locking.html di questo “oplocks” e volevo capire se è la soluzione adatta a me. A te è già capitato di gestire file Access dove più persone leggono e scrivono? Grazie mille per l’eventuale risposta!

  26. Avatar Raoul Scarazzini

    Ciao Marco,
    io credo che se non hai esigenze specifiche l’ideale sarebbe quello di configurare “Exclusively Accessed Shares” in modo che i file possano essere modificati solo da un utente alla volta.
    Gestire accessi in cui più utenti accedono il scrittura contemporaneamente è una cosa molto, molto delicata, che peraltro, su file windows che verosimilmente sono Excel e Word sconsiglio vivamente…

  27. Avatar Marco
    Marco

    Eh ma purtroppo questo è un database dove accedono per forza più persone…. Ahimè questa realtà è molto diffusa..

  28. Avatar Raoul Scarazzini

    Allora credo che l’unica cosa che ti rimane da fare è quella di seguire il link che hai indicato.
    Posta qui le tue impressioni, serviranno come completamento dell’articolo.
    In bocca al lupo!

  29. Avatar Gianluca
    Gianluca

    Ciao, complimenti per l’ottima guida! l’ho seguita passo passo e sono riuscito a diventare parte del dominio active directory. ho però un problema:
    ho ubuntu 9.10 che si collega ad un server microsoft server 2008.
    nella finestra di accesso ad ubuntu, se entro con il nome utente e password di un membro del dominio active directory , parte il caricamento di ubuntu (e sono sicuro che mi riconosce perche al primo accesso mi ha creato la home directory) però dopo qualche secondo mi torna alla schermata di accesso dove devo inserire username e password!
    se invece cerco di effettuare l’accesso tramite console testuale mi fa accedere ma mi compare una negazione dei permessi per quanto riguarda la directory “./profile”, così:
    “-bash /home/MIODOMINIO/gianluca/.profile: Permesso negato”

    Hai qualche idea per risolvere? grazie mille in anticipo!

  30. Avatar Raoul Scarazzini

    Ciao Gianluca,
    la cosa migliore da fare è controllare i permessi delle directory locali e spulciare i log per capire quel “permesso negato” a cosa si riferisce.

    Se la login avviene a livello di autenticazione con il server sei a posto, pertanto il problema è locale.

    A presto!

  31. Avatar Gianluca
    Gianluca

    intanto grazie mille della risposta tempestiva..

    mi trovo un pò spaesato in questo contesto, potresti essere un pò più dettagliato su cosa potrei fare per capire da cosa proviene quel “permesso negato”?..

    a quali file di log devo fare riferimento?

  32. Avatar Raoul Scarazzini

    I log di samba si trovano nella cartella /var/log/samba. Qui troverai diversi file, ma quelli che interessano te sono principalmente tre:

    – log.nmbd: che contiene informazioni sul comportamento del demone all’interno della rete;
    – log.smbd: che contiene informazioni sull’iterazione con gli utenti (e questo potrebbe interessarti);
    – log.winbind: che contiene informazioni sull’iterazione di samba con il dominio;

    Io darei un occhio a tutti e tre per vedere se contengono qualcosa di evidente, ma più che altro mi metterei in tail su log.smbd e proverei a fare un login per vedere cosa viene loggato.

    Ciao!

  33. Avatar Maurizio Samuele
    Maurizio Samuele

    Ciao, complimenti per la guida.
    Vorrei aprofittare della tua esperienza per una consulenza se puoi;
    ho aggiunto a un dominio win2003 AD un server con CentOS 5.4 x86_64 con la home divisa in due, 100GB per una macchina virtuale win2003 e 100GB da condividere con samba per gli utenti del dominio.
    Ho realizzato la configurazione utilizzando le Tue linee guida, salvo avere dei problemi con la parte relativa allo share; io volevo che solo gli utenti di dominio che fanno parte del gruppo denominato “Servizio pippo” acceda a questa condivisione sia in lettura che in scrittura e in maniera anche multipla su file .mdb di access, oltre che al gruppo Administrator.
    Per fare ciò ho inserito la direttiva:
    valid users = %D+%S ma questa direttiva dava accesso a tutti gli utenti di AD;
    dopo un po’ di prove ho realizzato che la direttiva giusta era:
    valid users = @%D+”Servizio pippo”
    mentre per l’utente amministratore ho dovuto inserire il nome dei due utenti singoli che sono anche amministratori di dominio perchè la direttiva
    valid users = @%D+”Administrators” non funzionava.
    Sul file system ho dato come permessi alla directory base ” chmod -R 774″ e come proprietari ho dato “chown -R root:domain users”.
    Secondo Te è giusto quello che ho fatto?
    Ci sono altri parametri che dovrei specificare nella sezione share?
    io ho inserito anche:
    create mask = 774
    directory mask = 774
    msdfs root = yes
    dos filemode = yes
    inherit permissions = yes
    vanno bene o sono superflui?
    Grazie.

  34. Avatar Raoul Scarazzini

    Ciao Maurizio,
    il modo in cui hai specificato gli utenti ed i gruppi è corretto, potresti valutare per lo share di definire alla stessa maniera direttive relative alla “write list” ed alla “read list”.
    Riguardo ai permessi locali che hai assegnato via chmod, sconsiglio di mettere 774, in quanto che tutti possano leggere, da quel che ho capito, a te non interessa. Considera quindi che 770 potrebbe essere una scelta vincente.
    Per il resto l’opzione specifica “msdfs root” l’hai dichiarata con il valore di default che comunque verrebbe considerato, per cui è superflua.
    “dos filemode” e “inherit permissions” io in genere tendo sempre a non utilizzarle in favore di una configurazione locale dei permessi coerente, il fatto che tu abbia assegnato la dir a tutto il gruppo “Domain users” e che questo abbia permesso di scrittura comporta per forza problemi.
    In genere io creo gruppi AD specifici a cui assegno i permessi delle dir su SAMBA ed assegno a “valid users” il valore “@DOMINIO\Mio gruppo” o “@DOMINIO+Mio gruppo” che dir si voglia.

    Spero di aver chiarito i tuoi dubbi.

  35. Avatar Maurizio Samuele
    Maurizio Samuele

    Dubbi chiariti!
    Grazie mille per l’attenzione dedicatami e la velocità della risposta.

  36. Avatar Francesco Chiriaco
    Francesco Chiriaco

    Mi inchino alla tua chiarezza e ti ringrazio infinitamente.
    3 articoli spettacolari e utilissimi.

    Grazieeee !

  37. Avatar adolfo enrique
    adolfo enrique

    Grazie per le guide e le risposte che ho trovato estremamente chiare ed esaurienti.
    Ho agganciato ad un’AD 2 server ubuntu che fungono da file server e vanno benissimo.
    solo che in uno, quando accedo finisco nella cartella /NOMEDOMINIO/HOME/UTENTE
    mentre nell’altro, viene creata una cartella /XXXX/HOME/UTENTE
    dove XXXX è un numero (spesso diverso, ma non sempre)
    potresti darmi una mano anche su questo?

    ancora, grazie mille per il lavoro

  38. Avatar Raoul Scarazzini

    Ciao,
    le configurazioni dei due server sono identiche? Perché ciò che precede HOME/UTENTE dovrebbe essere appunto coerentemente il nome dominio.

    Dovresti controllare queste cose in particolare come vengono esportate le directory relative ai profili.

    In bocca al lupo!

  39. Avatar adolfo enrique
    adolfo enrique

    infatti sto verificando ancora una volta l’allineamento delle 2 configurazioni. ma trovo tutto apparentemente identico. /krb5.conf, /smb.conf…

    grazie comunque!

  40. Avatar Raoul Scarazzini

    Molto strano, la home directory degli utenti puoi capirla da qui:

    $ for i in `wbinfo -u –domain=DOMINIO.IT`; do wbinfo -i “$i”; done
    DOMINIO.IT\user1:*:10000:10004:User 1:/home/DOMINIO.IT/user1:/bin/bash
    DOMINIO.IT\user2:*:10001:10004:User 2:/home/DOMINIO.IT/user2:/bin/bash
    DOMINIO.IT\user3:*:10002:10004:User 3:/home/DOMINIO.IT/user3:/bin/bash
    DOMINIO.IT\user4:*:10003:10004:User 4:/home/DOMINIO.IT/user4:/bin/bash

    In base al responso di questo comando hai un’idea chiara di come sono associate le home.

  41. Avatar adolfo enrique

    scusa per il ritardo! infatti e’ evidente che qualcosa non e’ corretto nella configurazione. la risposta alla stringa d’interrogazione è
    “Could not get info for user .NOME_UTENTE.”
    (anche dopo aver fatto un kinit -V e da sudo)
    il problema è che ho una 20na di utenti che già lavorano nelle condivisioni di SAMBA, altrimenti piallavo e ripartivo daccapo

  42. Avatar Raoul Scarazzini

    Di conseguenza il problema è relativo al demone winbind. E’ avviato? Cosa dicono i log?

  43. Avatar adolfo enrique
    adolfo enrique

    grazie per la tua pazienza.
    quali log di preciso?
    qui riporto un sunto di ‘log.winbindd-idmap’
    —————–
    [2010/05/27 13:21:19, 0] winbindd/idmap.c:149(smb_register_idmap)
    Idmap module nss already registered!
    [2010/06/03 08:38:50, 0] winbindd/idmap.c:201(smb_register_idmap_alloc)
    idmap_alloc module tdb already registered!
    [2010/06/03 08:38:50, 0] winbindd/idmap.c:149(smb_register_idmap)
    Idmap module passdb already registered!
    [2010/06/03 08:38:50, 0] winbindd/idmap.c:149(smb_register_idmap)
    Idmap module nss already registered!
    ————–
    e di ‘log.winbindd-dc-connect’
    ————–
    [2010/04/06 08:26:11, 1] libads/cldap.c:154(recv_cldap_netlogon)
    no reply received to cldap netlogon
    [2010/04/29 13:56:42, 1] libads/cldap.c:154(recv_cldap_netlogon)
    no reply received to cldap netlogon
    ————–
    indubbiamente non sono allettanti, ma non saprei come correggere.

  44. Avatar Raoul Scarazzini

    No, non si capisce molto da questi log, ma continuo ad essere convinto che il problema dipenda da Winbind.

    Prova a ricontrollare le conf. C’è di sicuro qualcosa che non torna lì.

  45. Avatar Andrea Z
    Andrea Z

    Ciao, innanzitutto voglio farti i miei complimenti per questi tre articoli, scritti in modo veramente chiaro e completo; non se ne trovano di guide fatte così bene sulla Rete!
    Grazie alla lettura di questa tua guida, infatti, son riuscito nell’intento di mettere sotto dominio Windows una macchina linux, con tanto di gestione delle utenze e delle policies dei gruppi.

    Volevo farti notare due piccole precisazioni al fine di migliorare ulteriormente il tuo articolo:

    Riguardo ntpdate, trovo più utile interfacciare la macchina direttamente con l’orario del server di dominio che andremo ad utilizzare, per farlo basta digitare l’indirizzo IP del server al posto di “time.ien.it”.

    Riguardo Samba, con le ultime versioni il demone si avvia/ferma tramite il comando:

    # service smbd stop | start | restart

    E invece per la questione delle policy di accesso\lettura\scrittura sulle cartelle condivise, ci ho perso la testa per capire bene il funzionamento, dato che su Internet tutti dicono una cosa diversa. Posso dire di avere risolto ogni problema mediante un semplice passaggio che non risulta nell’articolo.

    Praticamente prima di poter “validare” gli users in lettura o scrittura tramite Samba, bisogna dare i permessi a tutti sul filesystem tramite:

    # chmod -R 777 /directory/da/usare

    e poi tramite Samba usando i parametri che hai descritto nella guida;
    anche se io al posto di “read list” preferisco usare “valid users”.

    È tutto, rinnovo ancora i miei complimenti e ti ringrazio per l’ottimo lavoro. 🙂

  46. Avatar Raoul Scarazzini

    Ciao Andrea e grazie per i complimenti.
    In merito alle osservazioni:
    – Assolutamente d’accordo con il discorso NTP, ha certamente più senso sfruttare l’NTP del server AD;
    – “service” è ormai standard, ma onde evitare qualsiasi dubbio, il buon vecchio /etc/init.d/ è certamente valido;
    – I permessi 777 sono il male 🙂 lo vado ripetendo in tutti i corsi che tengo, perché è una verità. Risolvere un problema di accesso dando accesso a tutti è un errore, che inoltre espone a numerosi rischi di sicurezza. Non farlo mai. Se il sistema non permette la scrittura, allora sarà necessario impostare le corrette appartenenze di file e gruppi. Ricorda ad esempio che volendo potresti assegnare una cartella ad un gruppo di utenze AD, con permessi 770 e saresti tutelato da accessi indesiderati. Ad ogni modo il 777, no, non serve praticamente mai.

    Detto questo, se vuoi approfondire ulteriormente la tua configurazione, fornisci maggiori dettagli in merito a cosa vuoi fare, vedrai che una soluzione diversa dal 777 si trova sempre, te lo garantisco.

    A presto.

  47. Avatar Andrea Z
    Andrea Z

    Ciao Raoul, grazie per la velocità di risposta.

    Ho appena provato a settare un chmod 770 sulla directory che voglio condividere ma sorge un problema; ovvero che non riesco nemmeno ad accedere alla cartella. Se metto 775 ci accedo ma non posso scrivere/cancellare, in barba al parametro
    “write list = DOMINIO.IT\nome.utente” che teoricamente dovrebbe darmi abilitazione alla scrittura…

    Perché il sistema non categorizza i gruppi Active Directory come la seconda cifra numerica, che di norma è quella che interessa i Gruppi, appunto? (non è forse “Owner”, “Groups”, “Others” la sequenza delle tre cifre?)
    A quanto pare per abilitare i gruppi o gli utenti di Active Directory devo settare la cifra corrispondente ad “altri” sul 7, altrimenti nisba.

    A questo punto stavo pensando… forse farei prima a cambiare il gruppo d’appartenza della directory con ‘chgrp’ e impostandolo sul gruppo generico “Domain Users” di AD, e poi servirmi di Samba per gestire le policy…
    Il problema è che non so che comando dare per fargli capire di usare il gruppo di AD e non uno di sistema (quale root, utente, etc)…
    Non so se mi sono spiegato, in caso me ne scuso.

    Ti ringrazio già anticipatamente per i preziosi consigli e per il tempo che mi dedicherai, non c’è alcuna fretta in ogni caso. Ti auguro una buona giornata!

    Andrea

  48. Avatar Raoul Scarazzini

    Ciao Andrea,
    stai ignorando la principale questione: chi è il proprietario di quei file? Se l’utente con cui stai cercando di scrivere non è il proprietario o non fa parte del gruppo, con i permessi 770 non ci accederai mai. Anche se in SAMBA il tuo utente è abilitato.
    La sequenza è quella che indichi tu ed anche la soluzione è quella che hai scritto:

    # chgrp -R "DOMINIO.IT\gruppo" 

    o se vuoi modificare user e group in una volta sola:

    # chown -R "DOMINIO.IT\utente":"DOMINIO.IT\gruppo" 

    A presto!

  49. Avatar Andrea Z
    Andrea Z

    Ciao Raoul,

    innanzitutto ancora mille grazie per la celerità e la professionalità con la quale rispondi.
    Come seconda cosa volevo dirti che effettivamente cambiando il gruppo di appartenenza della directory, sono riuscito a fare tutto. Avevo già provato a cambiare gruppo tramite “chgrp” ma stupidamente non avevo considerato le virgolette nella sintassi e per questo non mi riconosceva il comando.

    Ultima domanda, è possibile abilitare più gruppi a una directory tramite “chgrp”? No vero? Altrimenti si avrebbero più proprietari su una stessa directory, dico bene?
    Questo perché nel dominio AD sono presenti davvero molti gruppi diversi, e magari più utenti sono in gruppi diversi contemporaneamente, ma magari potrebbero dover avere accesso anche in scrittura alla stessa directory.
    Questo eventualmente si può risolvere appunto come dicevo prima, ovvero dando come proprietario della dir il gruppo generico “Domain Users” di AD, e poi gestire tramite SAMBA le writelist più opportune.

    Che dire, rinnovo ancora i miei complimenti e i ringraziamenti!

    Ciao e a presto!

  50. Avatar Raoul Scarazzini

    La soluzione è proprio quella che hai descritto. Sono davvero felice che sei riuscito a raggiungere il tuo obiettivo, eliminando il 777 (che è il MALE :-D).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *