Samba: guida estesa: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
{{Versioni compatibili|Tutte le versioni di Debian}}
=Introduzione=
=Introduzione=
Samba è 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 fra gli host di una rete. Si avvale sostanzialmente del protocollo SMB (''server message block'') originario Microsoft, basato a sua volta sul protocollo  NetBios (''network basic input output system'') sviluppato da IBM nel 1984.  
Samba è 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 fra gli host di una rete. Si avvale sostanzialmente del protocollo SMB (''server message block'') originario Microsoft, basato a sua volta sul protocollo  NetBios (''network basic input output system'') sviluppato da IBM nel 1984.  
Riga 26: Riga 27:
=Configurazione del server=
=Configurazione del server=
==Sezione global==
==Sezione global==
Editiamo il file '''/etc/samba/smb.conf''':
Editiamo il file <code>'''/etc/samba/smb.conf'''</code>:
<pre>   
<pre>   
  [global]
  [global]
Riga 37: Riga 38:
Con la sezione <code>global</code> all'interno del file <code>smb.conf</code> abbiamo impostato quei parametri che saranno il modello generale di tutte le eventuali sezioni che verranno.
Con la sezione <code>global</code> all'interno del file <code>smb.conf</code> abbiamo impostato 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''', verrà preso come riferimento '''192.168.1.0/24'''.
Ad esempio, se nella successiva sezione non specificassimo il parametro <code>'''allow hosts'''</code>, verrà preso come riferimento '''192.168.1.0/24'''.


Ok, in breve:<br>
Ok, in breve:<br>
*'''allow hosts''' = range di IP ai quali è permesso l'accesso alla risorsa<br>
* <code>'''allow hosts'''</code>: range di IP ai quali è permesso l'accesso alla risorsa;
*'''workgroup''' = nome del gruppo di lavoro<br>  
* <code>'''workgroup'''</code>: nome del gruppo di lavoro;
*'''server string''' = stringa che identifica il server<br>
* <code>'''server string'''</code>: stringa che identifica il server;
*'''create mask''' = determina i permessi dei file in condivisione<br>
* <code>'''create mask'''</code>: determina i permessi dei file in condivisione.


{{Box|Nota|Per puntare a semplicità e rapidità di utilizzo, inseriremo solo pochi parametri essenziali per sezione nel nostro <code>/etc/samba/smb.conf</code>. Tuttavia i parametri previsti per questo file sono veramente tanti. Per una panoramica completa fate riferimento alla pagina (man5) di [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba].
{{Box|Nota|Per puntare a semplicità e rapidità di utilizzo, inseriremo solo pochi parametri essenziali per sezione nel nostro <code>/etc/samba/smb.conf</code>. Tuttavia i parametri previsti per questo file sono veramente tanti. Per una panoramica completa fate riferimento alla pagina (man5) di [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba].
Riga 61: Riga 62:


Altri parametri:<br>
Altri parametri:<br>
*'''comment''' = commento per la directory
* <code>'''comment''' </code>= commento per la directory;
*'''path''' = percorso della directory condivisa
* <code>'''path'''</code> = percorso della directory condivisa;
*'''browsable''' = rende visibile lo share
* <code>'''browsable'''</code> = rende visibile lo share;
*'''public''' = rende la directory di libero accesso
* <code>'''public'''</code> = rende la directory di libero accesso;
*'''read only''' = setta i file della directory condivisa in sola lettura
* <code>'''read only'''</code> = setta i file della directory condivisa in sola lettura.


==Condivisione di una stampante==
==Condivisione di una stampante==
Adesso analizziamo i parametri da aggiungere al file <code>/etc/samba/smb.conf</code> per poter condividere una stampante.
Adesso analizziamo i parametri da aggiungere al file <code>/etc/samba/smb.conf</code> per poter condividere una stampante.
Aggiungiamo alla sezione '''global''':
Aggiungiamo alla sezione <code>'''global'''</code>:
<pre>  
<pre>  
  [global]
  [global]
Riga 75: Riga 76:
     load printers = yes
     load printers = yes
</pre>
</pre>
Creiamo inoltre la sezione '''printers''' che fornirà i parametri di accesso alle nostre stampanti:
Creiamo inoltre la sezione <code>'''printers'''</code> che fornirà i parametri di accesso alle nostre stampanti:
<pre>
<pre>
[printers]
[printers]
Riga 82: Riga 83:
     printable = yes
     printable = yes
</pre>
</pre>
{{Box|Nota|Debian non crea la directory /var/spool/samba. Questa directory è adibita solo allo spool di stampa, volendo molti la sostituiscono con <code>/tmp</code>. Se decidete di crearla voi, per un corretto funzionamento impostatele i permessi: ''nobody:nobody'' con:
{{Box|Nota|Debian non crea la directory <code>/var/spool/samba</code>. Questa directory è adibita solo allo spool di stampa, volendo molti la sostituiscono con <code>/tmp</code>. Se decidete di crearla voi, per un corretto funzionamento impostatele i permessi: <code>''nobody:nobody''</code> con:
<pre> # chown nobody.nobody /var/spool/samba</pre>
<pre> # chown nobody.nobody /var/spool/samba</pre>
<pre> # chmod -R 755 /var/spool/samba</pre>
<pre> # chmod -R 755 /var/spool/samba</pre>
Riga 106: Riga 107:
</pre>
</pre>
Parametri supplementari al nostro <code>/etc/samba/smb.conf</code>:<br>
Parametri supplementari al nostro <code>/etc/samba/smb.conf</code>:<br>
'''preexec''' = permette di impostare un'azione che sarà eseguita una volta connessi alla risorsa<br>
* <code>'''preexec'''</code>: permette di impostare un'azione che sarà eseguita una volta connessi alla risorsa;
'''postexec''' = in questo caso l'azione sarà eseguita quando la risorsa verrà sconnessa<br>
* <code>'''postexec'''</code>: in questo caso l'azione sarà eseguita quando la risorsa verrà sconnessa.


Nel momento in cui dal client monteremo la risorsa condivisa (con ''smbmount'' o ''smbclient'') sul server sentiremo montare il DVD, il cui contenuto sarà a nostra disposizione per trasferire file o, in caso di file audio/video, anche di streaming.  
Nel momento in cui dal client monteremo la risorsa condivisa (con ''smbmount'' o ''smbclient'') sul server sentiremo montare il DVD, il cui contenuto sarà a nostra disposizione per trasferire file o, in caso di file audio/video, anche di streaming.  
Riga 125: Riga 126:
Questi sono ''user'' e ''pass'' coi quali ci loggheremo nel momento in cui connetteremo le risorse condivise (''smbmount, smbclient'').
Questi sono ''user'' e ''pass'' coi quali ci loggheremo nel momento in cui connetteremo le risorse condivise (''smbmount, smbclient'').


Se volessimo inoltre consentire l'accesso a tutti gli utenti indistintamente, basterebbe inserire il parametro '''guest ok = yes''' nelle sezioni desiderate. Ad esempio nella sezione ''shared'':
Se volessimo inoltre consentire l'accesso a tutti gli utenti indistintamente, basterebbe inserire il parametro <code>'''guest ok = yes'''</code> nelle sezioni desiderate. Ad esempio nella sezione <code>''shared''</code>:
<pre>
<pre>
[shared]
[shared]
Riga 169: Riga 170:


===Principali flags===  
===Principali flags===  
(''Usare smbclient --help per uno screen completo''):
(''Usare <code>smbclient --help</code> 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''):
* <code>'''smbclient -L ''hostname'''''</code>: 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 198: Riga 199:
</pre>
</pre>


Come si vede, nella colonna '''Sharename''' sono elencati i nomi degli share settati in <code>/etc/samba/smb.conf</code>, quindi la nostra directory shared,la nostra stampante e il nostro lettore DVD (''le sezioni [global] e [printers]  non sono visibili poiché sono sezioni di parametri usate dal programma'').
Come si vede, nella colonna '''Sharename''' sono elencati i nomi degli share settati in <code>/etc/samba/smb.conf</code>, quindi la nostra directory shared,la nostra stampante e il nostro lettore DVD (''le sezioni <code>[global]</code> e <code>[printers]</code> non sono visibili poiché sono sezioni di parametri usate dal programma'').
Nella colonna '''Server ''' sono invece elencati gli host facenti parte del medesimo workgroup.
Nella colonna '''Server ''' sono invece elencati gli host facenti parte del medesimo workgroup.
C'è poi la colonna '''Workgroup''' che visualizza l'host con ruolo di domain master browser nella subnet.
C'è 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'eventuale password per il login sulla macchina server.
* <code>'''smbclient -U'''</code>: con questo flag possiamo specificare l'username e l'eventuale 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.
* <code>'''smbclient -A'''</code>: sostanzialmente uguale a <code>-U</code> ma possiamo dargli il path di un file dal quale attingere l'username e la password.


===Accesso al server===
===Accesso al server===
Riga 239: Riga 240:


===Alcune funzioni===
===Alcune funzioni===
*'''lowercase''': abilita i file ad essere richiamati da ''get'' e ''mget'' utilizzando solo caratteri minuscoli. È utile viste le difficoltà spesso trovate negli share MSDOS (''case insensitive'').
* <code>'''lowercase'''</code>: abilita i file ad essere richiamati da ''get'' e ''mget'' utilizzando solo caratteri minuscoli. È utile viste le difficoltà spesso trovate negli share MSDOS (''case insensitive'').
<pre>
<pre>
es. di abilitazione dei parametri:
es. di abilitazione dei parametri:
Riga 245: Riga 246:
smb: \> prompt on
smb: \> prompt on
</pre>
</pre>
*'''prompt''': impostando ''' prompt''' su '''on''' prima di ogni trasferimento ci verrà richiesta una conferma.
* <code>'''prompt'''</code>: impostando ''' prompt''' su '''on''' prima di ogni trasferimento ci verrà richiesta una conferma;
*'''showconnect''': mostra l' //host/nome_risorsa in uso.
* <code>'''showconnect'''</code>: mostra l' //host/nome_risorsa in uso:
<pre>
<pre>
smb: \> showconnect
smb: \> showconnect
Riga 252: Riga 253:
</pre>
</pre>


*'''stat nomefile''': stampa a video i permessi di un file e offre, in ordine temporale, info sugli accessi ad esso:
* <code>'''stat nomefile'''</code>: 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
1 508

contributi