Samba: guida estesa: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
mNessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
==Introduzione==
=Introduzione=
Samba e' un diffusissimo software open source ideato nel 1991 da Andrew Tridgell e rilasciato sotto licenza GPL che permette la condivisione di risorse come directory e stampanti tra macchine windows e GNU/Linux (''UNIX''); si avvale sostanzialmente del protocollo SMB (''server message block'') originario microsoft e basato a sua volta sul protocollo  NetBios (''network basic input output system'') sviluppato da IBM nel 1984.  
Samba e' un diffusissimo software open source ideato nel 1991 da Andrew Tridgell e rilasciato sotto licenza GPL che permette la condivisione di risorse come directory e stampanti tra macchine windows e GNU/Linux (''UNIX''); si avvale sostanzialmente del protocollo SMB (''server message block'') originario microsoft e basato a sua volta sul protocollo  NetBios (''network basic input output system'') sviluppato da IBM nel 1984.  


Si sceglie solitamente l'uso di Samba per poter condividere file e stampanti in una rete mista (''macchine GNU/Linux, windows, mac os..''), in modo da sfruttare un unico protocollo e un unico sistema di autenticazione.
Si sceglie solitamente l'uso di Samba per poter condividere file e stampanti in una rete mista (''macchine GNU/Linux, windows, mac os..''), in modo da sfruttare un unico protocollo e un unico sistema di autenticazione.


==La suite==
=La suite=
Analizziamo i programmi che otteniamo dall' installazione della suite samba per Debian GNU/Linux:
Analizziamo i programmi che otteniamo dall' installazione della suite samba per Debian GNU/Linux:


Riga 10: Riga 10:


In breve:
In breve:
* '''smbd''': questo demone gestisce le connessioni tcp/ip del server samba; gestisce le autenticazioni, da accesso ai filesystem e allo spooler di stampa.
;'''smbd''': questo demone e' sostanzialmente il cuore di samba; in ascolto sulla 445/tcp, gestisce le autenticazioni e da accesso ai filesystem e allo spooler di stampa.


* '''nmbd''': questo demone gestisce il lato udp, rende note le risorse condivise tutte le volte che viene interrogato dai client. Per fare un esempio � quel demone che permette la visualizzazione dei serventi samba in Risorse di Rete nei sistemi ms-windows.
;'''nmbd''': questo demone in ascolto sulla 139/udp, rende note le risorse condivise tutte le volte che viene interrogato dai client. Per fare un esempio � quel demone che permette la visualizzazione dei serventi samba in Risorse di Rete nei sistemi ms-windows. E' il primo ad avviarsi dei due demoni.


* '''smbclient''': programma client a riga di comando simile a ftp, dotato di diverse funzioni; tra le piu' importanti, quella di elencare le risorse messe in condivisione dai vari server samba in una rete.
;'''smbclient''': programma client a riga di comando simile a ftp (''smbclient trasferisce solo in binary mode''), dotato di diverse funzioni; tra le piu' importanti, quella di elencare le risorse messe in condivisione dai vari server samba in una rete.


* '''smbmount''' & '''smbumount''': utilizzati per montare/smontare filesystem condivisi.
;'''smbmount''' & '''smbumount''': utilizzati per montare/smontare filesystem condivisi.


* '''smbpasswd''': strumento per la creazione utenti samba. Un utente samba dovra' essere anche un utente presente sulla macchina.
;'''smbpasswd''': strumento per la creazione utenti samba. Un utente samba dovra' essere anche un utente presente sulla macchina.


* '''testparm''': strumento per la verifica del file '''/etc/samba/smb.conf.
;'''testparm''': strumento per la verifica del file '''/etc/samba/smb.conf.


* '''nmblookup''' = serve per risolvere i nomi host di un domain samba (''NetBIOS name'') in indirizzi ip (es: nmblookup ''nomehost'').
;'''nmblookup''':  risolve i nomi host di un domain samba (''NetBIOS name'') in indirizzi ip (es: nmblookup ''nomehost'').


==Configurazione del server==
=Configurazione del server=
===Sezione global===
==Sezione global==
Editiamo il file '''/etc/samba/smb.conf'''.
Editiamo il file '''/etc/samba/smb.conf'''.
<pre>   
<pre>   
Riga 38: Riga 38:
Con la sezione global all'interno del file smb.conf abbiamo settato quei parametri che saranno il modello generale di tutte le eventuali sezioni che verranno.
Con la sezione global all'interno del file smb.conf abbiamo settato quei parametri che saranno il modello generale di tutte le eventuali sezioni che verranno.


Ad esempio se  nella successiva sezione, non specificassimo il parametro '''allow hosts''', verra' preso come riferimento 192.168.1.0/24.
Ad esempio se  nella successiva sezione, non specificassimo il parametro '''allow hosts''', verra' preso come riferimento '''192.168.1.0/24'''.


ok, in breve:
ok, in breve:<br>
* '''allow hosts''' = range di ip ai quali e' permesso l'accesso alla risorsa
'''allow hosts''' = range di ip ai quali e' permesso l'accesso alla risorsa<br>
* '''workgroup''' = nome del gruppo di lavoro  
'''workgroup''' = nome del gruppo di lavoro<br>
* '''server string''' = stringa che identifica il server
'''server string''' = stringa che identifica il server<br>
* '''browsable''' = rende visibile lo share
'''browsable''' = rende visibile lo share<br>
* '''create mask''' = determina i permessi dei file in condivisione
'''create mask''' = determina i permessi dei file in condivisione<br>
Questi sono solo pochissimi parametri. Potrete trovarli tutti a questa pag. tratta dal sito ufficiale di  [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba].
Questi sono solo pochissimi parametri. Potrete trovarli tutti a questa pag. tratta dal sito ufficiale di  [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba].


===Condivisione di una directory===
==Condivisione di una directory==
Adesso sempre dentro il nostro smb.conf, creiamo la sezione specifica per la risorsa che vogliamo condividere.  In questo esempio condivideremo una directory.
Adesso sempre dentro il nostro smb.conf, creiamo la sezione specifica per la risorsa che vogliamo condividere.  In questo esempio condivideremo una directory.
<pre>
<pre>
Riga 60: Riga 60:
</pre>
</pre>


Altri parametri:
Altri parametri:<br>
* '''comment''' = commento per la directory
'''comment''' = commento per la directory<br>
* '''path''' = percorso della dir condivisa
'''path''' = percorso della dir condivisa<br>
* '''public''' = rende la dir di libero accesso
'''public''' = rende la dir di libero accesso<br>
* '''read only''' = setta i files della dir condivisa in sola lettura.
'''read only''' = setta i files della dir condivisa in sola lettura<br>


===Condivisione di una stampante===
==Condivisione di una stampante==
Adesso analizziamo i parametri da aggiungere al file '''smb.conf''' per poter condividere una stampante.
Adesso analizziamo i parametri da aggiungere al file '''smb.conf''' per poter condividere una stampante.
Aggiungiamo alla sezione '''global''':
Aggiungiamo alla sezione '''global''':
Riga 93: Riga 93:
Ok, a questo punto il file puo' considerarsi sufficientemente configurato per i nostri scopi.
Ok, a questo punto il file puo' considerarsi sufficientemente configurato per i nostri scopi.


===Autenticazione===
==Autenticazione==
Preoccupiamoci ora dell'accesso vero e proprio alla directory messa in condivisione. Possiamo creare un utente samba con smbpasswd, tenendo presente che un utente samba deve anche essere un utente presente sulla macchina; attribuendogli poi una password di nostra scelta:
Preoccupiamoci ora dell'accesso vero e proprio alla directory messa in condivisione. Possiamo creare un utente samba con smbpasswd, tenendo presente che un utente samba deve anche essere un utente presente sulla macchina; attribuendogli poi una password di nostra scelta:


Riga 129: Riga 129:
<pre>Loaded services file OK.</pre>
<pre>Loaded services file OK.</pre>


==Lato client==
=Lato client=
===Smbclient===
==Smbclient==
Spostiamoci sul client:
Spostiamoci sul client:
<pre># apt-get install smbfs</pre>
<pre># apt-get install smbfs</pre>
Riga 136: Riga 136:
Come detto in precedenza, smbclient e'  un programma client ftp-like, utilizzato per l'accesso a un server samba. Guardiamo i suoi principali flags e le sue principali funzioni invece, una volta dentro al server.
Come detto in precedenza, smbclient e'  un programma client ftp-like, utilizzato per l'accesso a un server samba. Guardiamo i suoi principali flags e le sue principali funzioni invece, una volta dentro al server.


====Principali flags====  
===Principali flags===  
''Usare smbclient --help per uno screen completo:''
''Usare smbclient --help per uno screen completo:''


* '''smbclient -L ''hostname''''' = lista tutti gli share di un determinato host. Ad esempio, dal nostro client facciamo richiesta di listare gli share del server (''come password digitiamo  quella dell'user creato con smbpasswd o solo invio''):
;'''smbclient -L ''hostname''''': lista tutti gli share di un determinato host. Ad esempio, dal nostro client facciamo richiesta di listare gli share del server (''come password digitiamo  quella dell'user creato con smbpasswd o solo invio''):
<pre>
<pre>
$ smbclient -L SERVER  
$ smbclient -L SERVER  
Riga 148: Riga 148:
         Sharename      Type      Comment
         Sharename      Type      Comment
         ---------      ----      -------
         ---------      ----      -------
         shared           Disk      Directory Shared
         shared         Disk      Directory Shared
         camon             Disk      Camon Printer
         camon           Disk      Camon Printer
         IPC$             IPC      IPC Service (server@debianizzati.org)
         IPC$           IPC      IPC Service (server@debianizzati.org)
         ADMIN$           IPC      IPC Service (server@debianizzati.org)
         ADMIN$         IPC      IPC Service (server@debianizzati.org)


Domain=[debianizzati] OS=[Unix] Server=[Samba 3.0.14a-Debian]
Domain=[debianizzati] OS=[Unix] Server=[Samba 3.0.14a-Debian]
Riga 157: Riga 157:
         Server              Comment
         Server              Comment
         ---------            -------
         ---------            -------
         SERVER         server@debianizzati.org
         SERVER               server@debianizzati.org
         CLIENT         server@debianizzati.org
         CLIENT               server@debianizzati.org


         Workgroup            Master
         Workgroup            Master
         ---------            -------
         ---------            -------
         debianizzati     SERVER
         debianizzati         SERVER
</pre>
</pre>


Riga 169: Riga 169:
C'e' poi la colonna '''Workgroup''' che visualizza l'host con ruolo di domain master browser nella subnet.
C'e' poi la colonna '''Workgroup''' che visualizza l'host con ruolo di domain master browser nella subnet.


* '''smbclient -U''' = Con questo flag possiamo specificare l'username e l'eventule password per il login sulla macchina server.
;'''smbclient -U''': Con questo flag possiamo specificare l'username e l'eventule password per il login sulla macchina server.


* '''smbclient -A''' = Sostanzialmente uguale a -U ma possiamo dargli il path di un file dal quale attingere l'username e la password.
;'''smbclient -A''': Sostanzialmente uguale a -U ma possiamo dargli il path di un file dal quale attingere l'username e la password.


====Accesso al server====
===Accesso al server===
<pre>
<pre>
$ smbclient //SERVER/shared
$ smbclient //SERVER/shared
Riga 205: Riga 205:
Il file sara' salvato nella directory dalla quale ci siamo connessi al server. Qualora il file non venisse rinominato manterrebbe il proprio nome.
Il file sara' salvato nella directory dalla quale ci siamo connessi al server. Qualora il file non venisse rinominato manterrebbe il proprio nome.


====Funzioni speciali====
===Alcune funzioni===
* '''lowercase''' = abilita i files ad essere richiamati da get e mget utilizzando solo caratteri minuscoli. E' utile viste le difficolta' spesso trovate negli share msdos (''case insensitive'')
;'''lowercase''': abilita i files ad essere richiamati da get e mget utilizzando solo caratteri minuscoli. E' utile viste le difficolta' spesso trovate negli share msdos (''case insensitive'').
<pre>
<pre>
es. di abilitazione dei parametri
es. di abilitazione dei parametri
Riga 212: Riga 212:
smb: \> prompt on
smb: \> prompt on
</pre>
</pre>
* '''prompt''' =  abilita/disabilita la richiesta di trasferimento. Impostando ''' prompt''' su '''on''' prima di ogni trasferimento ci verra' chiesta conferma.
;'''prompt''': Impostando ''' prompt''' su '''on''' prima di ogni trasferimento ci verra' richiesta una conferma.
* '''showconnect''' = mostra l' //host/nome_risorsa in uso.
;'''showconnect''': mostra l' //host/nome_risorsa in uso.
<pre>
<pre>
smb: \> showconnect
smb: \> showconnect
Riga 219: Riga 219:
</pre>
</pre>


* '''stat nomefile''' = Stampa a video i permessi di un file e in ordine temporale tutti gli accessi ad esso:
;'''stat nomefile''': Stampa a video i permessi di un file e offre in ordine temporale info sugli accessi ad esso:
<pre>
<pre>
smb: \> stat  free_kevin.png
smb: \> stat  free_kevin.png
Riga 231: Riga 231:
</pre>
</pre>


====Mask, mget e recurse====
===Mask, mget e recurse===
Con il comando '''mget''' abilitiamo il dowload di tutti i file e directory in maniera ricorsiva. Tuttavia possiamo dare a tale comando un parametro (maschera) utilizzando '''mask''' .
Con il comando '''mget''' abilitiamo il dowload di tutti i file e directory in maniera ricorsiva. Tuttavia possiamo dare a tale comando un parametro (maschera) utilizzando '''mask''' .
Es. nella nostra directory mettiamo di voler scaricare tutti i file con estensione .png:
Es. nella nostra directory mettiamo di voler scaricare tutti i file con estensione .png:
Riga 246: Riga 246:
La funzione '''recurse on''' attiva lo scanning & downloading (nel caso di una maschera) o il dowloading, accedendo anche a tutte le directory presenti nella dir da cui parte il comando.
La funzione '''recurse on''' attiva lo scanning & downloading (nel caso di una maschera) o il dowloading, accedendo anche a tutte le directory presenti nella dir da cui parte il comando.


===Smbmount & Smbumount===
==Smbmount & Smbumount==
Con '''smbmount''' invece montiamo una risorsa in un mountpoint a nostra scelta.
Con '''smbmount''' invece montiamo una risorsa in un mountpoint a nostra scelta.
Montiamo la risorsa shared col comando:
Montiamo la risorsa shared col comando:
128

contributi

Menu di navigazione