Dopo aver introdotto Active Directory ed aver configurato SAMBA per l’integrazione con un dominio vengono affrontati in questa seconda puntata i metodi per l’interrogazione dei domini: come ricavare le informazioni sugli utenti ed i gruppi, come accedere ad un computer di dominio ed eseguirvi un comando.
Il tutto attraverso gli strumenti offerti da SAMBA, dalla linea di comando.
Interrogazioni
Tra gli strumenti che samba mette a disposizione dalla linea di comando per l’interrogazione delle varie componenti del dominio ne verranno analizzati tre: net, già utilizzato nel precedente articolo per aggiungere la macchina al dominio, smbclient, un’interfaccia simile a quella di FTP ma utilizzabile per accedere a condivisioni Microsoft Windows e wbinfo, programma che interroga il demone winbind, la componente si SAMBA che si interfaccia con il servizio Active Directory.
net
l’opzione user del comando net associata alla specifica di -l consente di ricavare l’elenco utenti del dominio specificato nel file di configurazione di SAMBA:
$ net -U Administrator ads user -l
Enter Administrator's password:
User name Comment
-----------------------------
user1 Utente di test #1
Guest Built-in account for guest access to the computer/domain
...
...
Allo stesso modo specificando l’opzione group è possibile ottenere l’elenco gruppi:
$ net -U Administrator ads group -l
Enter Administrator's password:
Group name Comment
-----------------------------
Exchange Servers This group contains all the Exchange servers. This group should not be deleted.
Exchange Organization Users in this group will have permission to read and modify all Exchange configuration. This group should not be deleted.
Exchange Recipient Ad Users in this group can manage Exchange user attributes in the Active Directory and perform select mailbox operations. This group should not be deleted.
...
...
net permette anche di creare, cancellare e rinominare utenti e gruppi, ad esempio per creare il gruppo test_group il comando sarà:
$ net -U Administrator ads group ADD test_group
Administrator's password:
Group test_group added
Parallelamente un utente potrà esser creato come segue:
$ net -U Administrator ads user ADD test_user
Administrator's password:
User test_user added
Purtroppo net non consente ancora di operare sull’appartenenza dei gruppi, che è prevista nelle versioni future di SAMBA. Tutti le opzioni disponibili possono essere visionate nella man page del comando accessibile digitando man net.
smbclient con il ticket KERBEROS
Il tool smbclient offre un’interfaccia testuale con comandi simili a quelli ftp attraverso i quali è possibile interrogare ed agire su cartelle relative a condivisioni di tipo SMB/CIFS (cioè Microsoft Windows). Se già da questo punto di vista lo strumento appare subito utilissimo esiste un ulteriore vantaggio che lo rende indispensabile per le architetture Linux integrate con Active Directory: infatti smbclient può utilizzare l’autenticazione KERBEROS descritta nel precedente articolo per connettersi ai servizi remoti.
Prima di presentare gli esempi di utilizzo è quindi necessario fare acquisire al sistema il ticket KERBEROS attraverso il comando kinit:
$ kinit -V Administrator@DOMINIO.IT
Password for Administrator@DOMINIO.IT:
Authenticated to Kerberos v5
Il sistema è quindi in possesso della verifica necessaria per presentarsi ai servizi remoti. Utilizzando l’opzione -k di smbclient è possibile ad esempio sfogliare un computer di dominio del quale si conosce l’indirizzo IP o il nome. Nel nostro caso il sistema si chiama Test-win03 e l’invocazione di smbclient con i parametri utilizzati elencherà tutte le condivisioni disponibili sul server pubblico Microsoft:
$ smbclient -k -L Test-win03
OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Driver della stampante
C$ Disk Condivisione predefinita
IPC$ IPC IPC remoto
ADMIN$ Disk Amministrazione remota
HPLaserJ Printer HP LaserJet 4100 Series PS
musica Disk
OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
L’output del comando mostra quali condivisioni sono disponibili sul server remoto, su queste è quindi possibile eseguire dei comandi. Ad esempio per effettuare il listato del contenuto della cartella musica è possibile invocare smbclient in questa forma:
$ smbclient -k //Test-win03/musica -c "ls"
OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]
. D 0 Mon Feb 16 17:13:06 2009
.. D 0 Mon Feb 16 17:13:06 2009
Cartoni Animati D 0 Mon May 19 13:39:51 2008
Collaborazioni D 0 Mon Feb 16 11:17:12 2009
Cover D 0 Thu Dec 18 16:04:02 2008
...
...
smbclient dispone inoltre di una shell, in tutto e per tutto simile ad una shell di tipo ftp. Per accedervi è sufficiente invocare smbclient senza altri paramente che il già citato -k ed il nome della macchina seguito dalla cartella:
$ smbclient //Test-win03/musica -k
OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: >
I comandi disponibili nell’interfaccia si ottengono digitando help:
smb: >help
? altname archive blocksize cancel
case_sensitive cd chmod chown del
dir du exit get getfacl
hardlink help history lcd link
lowercase ls mask md mget
mkdir more mput newer open
print prompt put pwd q
queue quit rd recurse reget
rename reput rm rmdir showacls
setmode stat symlink tar tarmode
translate volume vuid logon listconnect
showconnect !
Altre informazioni utili su smbclient sono ottenibili attraverso la man page (man smbclient) del programma.
wbinfo
L’ultimo comando illustrato è wbinfo che come anticipato permette di interrogare il demone winbind responsabile delle comunicazione tra SAMBA ed Active Directory e l’integrazione dei due sistemi. In particolare il demone si occupa di effettuare il mapping delle utenze, di associare cioè l’identificativo univoco presente sul dominio ad un identificativo univoco LOCALE alla macchina SAMBA.
Per capire quanto illustrato, si osservi il seguente comando:
$ for i in `wbinfo -u --domain=DOMINIO.IT`; do wbinfo -i "$i"; done
DOMINIO.ITuser1:*:10000:10004:User 1:/home/DOMINIO.IT/user1:/bin/bash
DOMINIO.ITuser2:*:10001:10004:User 2:/home/DOMINIO.IT/user2:/bin/bash
DOMINIO.ITuser3:*:10002:10004:User 3:/home/DOMINIO.IT/user3:/bin/bash
DOMINIO.ITuser4:*:10003:10004:User 4:/home/DOMINIO.IT/user4:/bin/bash
...
...
L’elenco ricavato dal comando è del tutto simile a quanto contenuto nel file /etc/passwd di sistema, ad ogni utenza è infatti associato un identificativo univoco, un gruppo, una home dir ed una shell di login.
Anche in questo caso tutte le opzioni disponibili per il comando wbinfo sono disponibili nella man page (man wbinfo).
Conclusioni
L’esito dell’ultimo comando illustrato introduce quello che sarà l’argomento della prossima ed ultima puntata di questa serie: l’integrazione di Active Directory con il login di sistema attraverso la configurazione di PAM.
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.
Lascia un commento