SAMBA: configurazione lato server: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(8 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{SAMBA}}{{SAMBA1}}
{{SAMBA1}}
= Modulo principale =
= Modulo principale =


Riga 82: Riga 82:
</pre>
</pre>


{{Box|Nota|Data  la moltitudine di parametri configurabili in questa guida ci si  limiterà a trattarne solo una piccola parte. Per una panoramica completa  si invita il lettore a fare riferimento alla pagina (man5) di  [http://www.samba.org/samba/docs/man/smb.conf.5.html Samba]. }}
{{Box|Nota|Data  la moltitudine di parametri configurabili in questa guida ci si  limiterà a trattarne solo una piccola parte. Per una panoramica completa  si invita il lettore a fare riferimento alla pagina (man5) di  [https://www.samba.org/samba/docs/man/manpages/smb.conf.5.html Samba]. }}


{{  Warningbox | Esistono parametri che devono essere dichiarati nella sola  sezione <code>global</code>, parametri che devono essere  dichiarati solo nelle sezioni dedicate alle singole risorse e infine  parametri che possono essere definiti in entrambi i tipi di sezione. }}
{{  Warningbox | Esistono parametri che devono essere dichiarati nella sola  sezione <code>global</code>, parametri che devono essere  dichiarati solo nelle sezioni dedicate alle singole risorse e infine  parametri che possono essere definiti in entrambi i tipi di sezione. }}
Riga 119: Riga 119:
<pre>   
<pre>   
[global]
[global]
     allow hosts = 127.0.0.1 192.168.1.0/24     
     hosts deny = ALL
    hosts allow = 127.0.0.1 192.168.1.0/24     
     workgroup = debianizzati
     workgroup = debianizzati
     server string = server@debianizzati.org
     server string = server@debianizzati.org
Riga 136: Riga 137:
     unix password sync = Yes
     unix password sync = Yes
</pre>
</pre>
* <code>'''allow hosts'''</code>: range di IP ai quali è permesso l'accesso a tutte le risorse specificate nel seguito del file di configurazione; in questo caso vengono accettati tutti gli indirizzi compresi tra 192.168.1.1 e 192.168.1.254. Si noti che è possibile specificare più indirizzi e/o gruppi di indirizzi semplicemente separandoli con uno spazio, ad esempio <code>allow hosts = 127.0.0.1 192.168.1.0/24</code>. Qualora l'utente non volesse rendere disponibile tutte le risorse agli stessi range di indirizzi allora il parametro <code>allow hosts</code> non dovrebbe essere definito qui, ma in ciascuna delle sezioni dedicate alle singole risorse condivise. Il parametro è sostanzialmente additivo, ovvero il gruppo di indirizzi ammissibile per ogni risorsa è dato dalla somma di quelli specificati in questa sezione e da quelli definiti per la singola risorsa. Questo parametro è del tutto equivalente a <code>hosts allow</code>.
* <code>'''host deny''' e '''hosts allow'''</code>: combinazione di istruzione per definire un range di IP ai quali è permesso l'accesso a tutte le risorse specificate nel seguito del file di configurazione; in questo caso vengono accettati tutti gli indirizzi compresi tra 192.168.1.1 e 192.168.1.254. Si noti che è possibile specificare più indirizzi e/o gruppi di indirizzi semplicemente separandoli con uno spazio, ad esempio <code>allow hosts = 127.0.0.1 192.168.1.0/24</code>. Qualora l'utente non volesse rendere disponibile tutte le risorse agli stessi range di indirizzi allora il parametro <code>allow hosts</code> non dovrebbe essere definito qui, ma in ciascuna delle sezioni dedicate alle singole risorse condivise. Il parametro è sostanzialmente additivo, ovvero il gruppo di indirizzi ammissibile per ogni risorsa è dato dalla somma di quelli specificati in questa sezione e da quelli definiti per la singola risorsa. Questo parametro è del tutto equivalente a <code>hosts allow</code>.
* <code>'''workgroup'''</code>:  nome del gruppo di lavoro; non è un parametro critico, nel senso che  anche se viene definito un nome differente da quello cui appartengono  tutte le altre macchine della rete il risultato è che in windows il nome  del server comparirà sotto un differente gruppo di lavoro.
* <code>'''workgroup'''</code>:  nome del gruppo di lavoro; non è un parametro critico, nel senso che  anche se viene definito un nome differente da quello cui appartengono  tutte le altre macchine della rete il risultato è che in windows il nome  del server comparirà sotto un differente gruppo di lavoro.
* <code>'''server string'''</code>: stringa che identifica il server.
* <code>'''server string'''</code>: stringa che identifica il server.
* <code>'''security'''</code>: definisce il "modo" con cui samba gestisce l'autenticazione degli utenti.
* <code>'''security'''</code>: definisce il "modo" con cui samba gestisce l'autenticazione degli utenti.
**  ''user'': è il valore predefinito, implica che sia il nome delle  risorse sia il loro contenuto risultano indisponibili all'utente  fintanto che questi non si è autenticato con successo; deroga a questo  principio il caso in cui l'utente venga automaticamente autenticato come  ospite (si veda ''map to guest'').
**  ''user'': è il valore predefinito, implica che sia il nome delle  risorse sia il loro contenuto risultano indisponibili all'utente  fintanto che questi non si è autenticato con successo; deroga a questo  principio il caso in cui l'utente venga automaticamente autenticato come  ospite (si veda ''map to guest'').
** ''share'': è il valore  storico, usato come predefinito nelle versioni di samba precedenti la  terza; semplificando si può dire che gli utenti possono vedere le  risorse, ma non accedervi, anche senza essersi autenticati con successo  (quindi chiunque è in grado di vedere l'elenco delle risorse).
** <strike>''share'': è il valore  storico, usato come predefinito nelle versioni di samba precedenti la  terza; semplificando si può dire che gli utenti possono vedere le  risorse, ma non accedervi, anche senza essersi autenticati con successo  (quindi chiunque è in grado di vedere l'elenco delle risorse)</strike>. ''share'' È UN VALORE DEPRECATO.
**  ''domain'' e ''server'': sono modalità specifiche per reti dove è  configurato un dominio e non semplicemente un gruppo di lavoro.
**  ''domain'' <strike>e ''server''</strike>: sono modalità specifiche per reti dove è  configurato un dominio e non semplicemente un gruppo di lavoro.
*  <code>'''guest account'''</code>: permette di definire  l'utente da usare come utenza guest (il valore predefinito è  ''nobody''), in questo esempio l'utente ''ospite'' (che come ogni altro  utente deve esistere sia in linux che in samba).
*  <code>'''guest account'''</code>: permette di definire  l'utente da usare come utenza guest (il valore predefinito è  ''nobody''), in questo esempio l'utente ''ospite'' (che come ogni altro  utente deve esistere sia in linux che in samba).
*  <code>'''map to guest'''</code>: questo parametro torna  principalmente utile se si vuol creare una condivisione accessibile a  chiunque tramite l'utenza guest (ovvero se si vuole permettere l'accesso  ad una o più risorse senza che vengano richieste username e password)  quando sia stato impostato <code>security = user</code> o  <code>security = domain</code>. Ci sono quattro valori  possibili di questo parametro:
*  <code>'''map to guest'''</code>: questo parametro torna  principalmente utile se si vuol creare una condivisione accessibile a  chiunque tramite l'utenza guest (ovvero se si vuole permettere l'accesso  ad una o più risorse senza che vengano richieste username e password)  quando sia stato impostato <code>security = user</code> o  <code>security = domain</code>. Ci sono quattro valori  possibili di questo parametro:
Riga 153: Riga 154:
*  <code>'''include'''</code>: permette di includere nel file  di configurazione <code>smb.conf</code> un altro file di  configurazione (e quindi le relative impostazioni). Nell'esempio  riportato viene importato il file /etc/samba.smb.conf.alias, dove  ''alias'' è uno degli alias definiti attraverso il parametro  <code>netbios aliases</code> (il carattere %L serve proprio a  leggere l'imput dell'utente). Questo artificio è utile in quei casi  dove può essere necessario caricare impostazioni parzialmente differenti  a seconda del gruppo di utenti che accede al server, basta cioè che  ciascuno di questi gruppi acceda al server sfruttando un diverso alias,  ad esempio ''commerciale'', ''amministrazione'', ''tecnico'', ecc.
*  <code>'''include'''</code>: permette di includere nel file  di configurazione <code>smb.conf</code> un altro file di  configurazione (e quindi le relative impostazioni). Nell'esempio  riportato viene importato il file /etc/samba.smb.conf.alias, dove  ''alias'' è uno degli alias definiti attraverso il parametro  <code>netbios aliases</code> (il carattere %L serve proprio a  leggere l'imput dell'utente). Questo artificio è utile in quei casi  dove può essere necessario caricare impostazioni parzialmente differenti  a seconda del gruppo di utenti che accede al server, basta cioè che  ciascuno di questi gruppi acceda al server sfruttando un diverso alias,  ad esempio ''commerciale'', ''amministrazione'', ''tecnico'', ecc.


* <code>'''passwd program'''</code>: questo parametro ha essenzialmente senso se usato in congiunzione con <code>unix password sync = yes</code> poiché definisce che applicativo usare per modificare automaticamente le password unix.
* <code>'''passwd program'''</code>: definisce che programma deve usare samba per gestire le proprie password. Samba non ha un suo applicativo per fare questo, quindi deve appoggiarsi a quello che il sistema usa normalmente per gestire le sue password. Questo parametro da solo non permette la sincronizzazione delle password samba con quelle unix di sistema. Se il parametro ''pam password change'' è impostato su ''yes'' allora il presente parametro viene ignorato, ovvero è inutile specificare ''passwd program'' se si specifica contestualmente ''pam password change = yes''.
*  <code>'''pam password change'''</code>: se impostato su yes il sistema userà PAM invece dell'applicativo definito in  <code>passwd program</code> per cambiare automaticamente le password unix (quindi è inutile definire contemporaneamente sia  <code>passwd program</code> che <code>pam password  change = yes</code>).
*  <code>'''pam password change'''</code>: se impostato su ''yes'' il sistema userà PAM invece dell'applicativo definito in  <code>passwd program</code> per cambiare automaticamente le password samba (quindi è inutile definire contemporaneamente sia  <code>passwd program</code> che <code>pam password  change = yes</code>). Questo parametro da solo non permette la sincronizzazione delle password samba con quelle unix di sistema, inoltre viene ignorato se vale ''encrypt passwords = yes'' (che è il valore predefinito!).
* <code>'''obey pam  restrictions'''</code>: impostare su yes solo nel caso in cui sia anche <code>pam password change = yes</code>.
* <code>'''obey pam  restrictions'''</code>: impostare su yes solo nel caso in cui sia anche <code>pam password change = yes</code>.
*  <code>'''passwd chat'''</code>: definisce la stringa che  samba passerà a linux per cambiare una password unix. Non cambiare il  valore indicato a meno di non sapere quel che si sta facendo. Questo parametro può essere omesso se non si è definito <code>passwd  program</code> oppure impostato <code>pam password change =  yes</code>.
* <code>'''unix passwd  sync'''</code>: impostare questo parametro su yes fa si che quando la password di un utente samba viene cambiata anche la password linux è modificata.
* <code>'''unix passwd sync'''</code>: impostare questo parametro su yes fa si che quando  la password di un utente samba viene cambiata anche la password linux è  modificata.
*  <code>'''passwd chat'''</code>: definisce la stringa che  samba passerà a linux per cambiare una password unix. Non cambiare il  valore indicato a meno di non sapere quel che si sta facendo. Questo parametro può essere omesso se non si è definito ''unix passwd sync = yes''.


====Parametri generici====
====Parametri generici====
Riga 264: Riga 265:


{{Warningbox|Oltre a definire  correttamente gli utenti in samba è sempre necessario definire  correttamente i permessi UNIX sulle cartelle che si andranno a  condividere, ovvero se si desidera che l'utente pinco pallino abbia  accesso sia in lettura che scrittura ad una certa cartella non è  sufficiente imporre ''read only &#61; no'', ma bisogna che ad  esempio l'utente in questione sia proprietario della cartella oppure che  questa abbia schema ''777'', ecc.}}
{{Warningbox|Oltre a definire  correttamente gli utenti in samba è sempre necessario definire  correttamente i permessi UNIX sulle cartelle che si andranno a  condividere, ovvero se si desidera che l'utente pinco pallino abbia  accesso sia in lettura che scrittura ad una certa cartella non è  sufficiente imporre ''read only &#61; no'', ma bisogna che ad  esempio l'utente in questione sia proprietario della cartella oppure che  questa abbia schema ''777'', ecc.}}
Per visualizzare l'elenco degli utenti samba registrati:
<pre># pdbedit -L -v</pre>


====L'utenza guest ovvero le condivisione pubbliche====
====L'utenza guest ovvero le condivisione pubbliche====
Riga 274: Riga 279:
A titolo informativo si  ricorda che è possibile creare un utente in linux disabilitandone subito  la possibilità di autenticarsi aggiungendo al comando  <code>adduser</code> l'opzione  <code>--disabled-login</code>; qualora invece l'utente sia  già esistente è sufficiente usare l'opzione <code>-l</code>  del comando <code>passwd</code> per disabilitarne la  capacità di autenticarsi al sistema.
A titolo informativo si  ricorda che è possibile creare un utente in linux disabilitandone subito  la possibilità di autenticarsi aggiungendo al comando  <code>adduser</code> l'opzione  <code>--disabled-login</code>; qualora invece l'utente sia  già esistente è sufficiente usare l'opzione <code>-l</code>  del comando <code>passwd</code> per disabilitarne la  capacità di autenticarsi al sistema.


Vale la pena  esplicitare cosa succede nel caso <code>security = user</code> e <code>map to guest = Bad User</code>  quando l'utente windows clicca sull'icona del server:
Vale la pena  esplicitare cosa succede nel caso <code>security = user</code> e <code>map to guest = Bad User</code>  quando l'utente windows clicca sull'icona del server:
* '''Utenza  windows non esistente o non mappata''': l'utente windows viene  automaticamente autenticato come guest; si noti che in tal caso è sempre  possibile autenticarsi nuovamente con una differente utenza quando si  accede ad una risorsa non pubblica, tuttavia una volta fatto ciò  l'utente sarà visto dal server samba sempre con il nome utente appena  immesso, a meno di non disconnettersi e riconnettersi a windows.
* '''Utenza  windows non esistente o non mappata''': l'utente windows viene  automaticamente autenticato come guest; si noti che in tal caso è sempre  possibile autenticarsi nuovamente con una differente utenza quando si  accede ad una risorsa non pubblica, tuttavia una volta fatto ciò  l'utente sarà visto dal server samba sempre con il nome utente appena  immesso, a meno di non disconnettersi e riconnettersi a windows.
* '''Utenza windows esistente o mappata'''
* '''Utenza windows esistente o mappata'''
**  ''Password windows coincidente'': l'utente windows viene  automaticamente autenticato con il suo nome utente o con quello definito  dalla mappa utenti, parametro <code>username map</code>.
**  ''Password windows coincidente'': l'utente windows viene  automaticamente autenticato con il suo nome utente o con quello definito  dalla mappa utenti, parametro <code>username map</code>.
**  ''Password windows non coincidente'': quando allo stesso utente sono  associate due password differenti in windows e samba-linux viene  proposta la finestra di login; in caso di immissione errata della  password all'utente viene negato qualsiasi accesso alle risorse remote  (compreso il semplice elenco delle risorse condivise). Si noti che un  utente con nome windows coincidente con uno di quelli linux non può  usare l'utenza guest, pertanto se l'utenza omonima sul server linux non è  di sua proprietà egli non potrà autenticarsi presso il server con il  suo nome utente windows. In tal caso l'unico modo per garantirgli  l'accesso è creare un apposita utenza in linux e comunicargli le  relative credenziali (attenzione a non rimappare l'utenza poiché in tal  caso verrebbe bloccato l'accesso all'altro utente).
**  ''Password windows non coincidente'': quando allo stesso utente sono  associate due password differenti in windows e samba-linux viene  proposta la finestra di login; in caso di immissione errata della  password all'utente viene negato qualsiasi accesso alle risorse remote  (compreso il semplice elenco delle risorse condivise). Si noti che un  utente con nome windows coincidente con uno di quelli linux non può  usare l'utenza guest, pertanto se l'utenza omonima sul server linux non è  di sua proprietà egli non potrà autenticarsi presso il server con il  suo nome utente windows. In tal caso l'unico modo per garantirgli  l'accesso è creare un apposita utenza in linux e comunicargli le  relative credenziali (attenzione a non rimappare l'utenza poiché in tal  caso verrebbe bloccato l'accesso all'altro utente).
===== Note su <code>security = user</code> =====
Perché l'utenza guest funzioni correttamente attenersi a quanto segue oltre a quanto già detto:
* Evitare accuratamente di dichiarare il parametro <code>valid users</code> sia nella sezione <code>[global]</code> che in quella della risorsa che deve essere accessibile all'utenza "guest".
* Dichiarare nel file di mappatura utenti l'associazione ''account_guest_linux = guest'', che nel caso predefinito equivale a scrivere <code>nobody = guest</code>


====Sincronizzazione delle password samba e linux====
====Sincronizzazione delle password samba e linux====
Qualora  si desiderasse mantenere sincronizzate le password linux  (<code>passwd</code>) con quelle definite attraverso  <code>smbpasswd</code> è possibile ricorrere ad appositi  parametri, come già scritto.
Qualora  si desiderasse mantenere sincronizzate le password linux  (<code>passwd</code>) con quelle definite attraverso  <code>smbpasswd</code> è possibile ricorrere ad appositi  parametri, come già scritto.
{{Box|NOTA|con questo metodo la  sincronizzazione è unidirezionale, ovvero qualsiasi modifica alla  password samba verrà automaticamente propagata a quella linux, ma non viceversa.}}
{{Box|NOTA|con questo metodo la  sincronizzazione è unidirezionale, ovvero qualsiasi modifica alla  password samba verrà automaticamente propagata a quella linux, ma non viceversa.}}
Oltre ad utilizzare <code>passwd</code>  per impostare le password è anche possibile usare PAM, badando bene che i  due metodi sono mutualmente esclusivi. In particolare impostare  <code>pam password change = yes</code> comporta l'automatica  esclusione della prima modalità.<br>
Oltre ad utilizzare <code>passwd</code>  per impostare le password è anche possibile usare PAM, badando bene che i  due metodi sono mutualmente esclusivi. In particolare impostare  <code>pam password change = yes</code> comporta l'automatica  esclusione della prima modalità.<br>
In entrambi i casi  devono essere sempre definiti i parametri <code>passwd  chat</code> (anche il testo da passare può essere il medesimo) e  <code>unix passwd sync = yes</code>.<br>
In entrambi i casi  devono essere sempre definiti i parametri <code>passwd  chat</code> (anche il testo da passare può essere il medesimo) e  <code>unix passwd sync = yes</code>.<br>
Riga 349: Riga 360:
Verificato che tutte le condivisioni che si sono impostate in ''smb.conf'' siano presenti si può provare a connettersi alle suddette usando un utente abilitato al servizio samba, digitando:
Verificato che tutte le condivisioni che si sono impostate in ''smb.conf'' siano presenti si può provare a connettersi alle suddette usando un utente abilitato al servizio samba, digitando:
<pre>smbclient //localhost/nome_condivisione -U nome_utente</pre>
<pre>smbclient //localhost/nome_condivisione -U nome_utente</pre>
dove ''nome_condivisione'' è il nome di una delle condivisioni cui l'utente può accedere (NON il nome della cartella, ma lo "Sharename" definito in smb.conf e visibile tra l'altro attraverso il precedente comando). Si veda la pagina dedicata ai [http://guide.debianizzati.org/index.php/SAMBA:_configurazione_lato_client#Accesso_al_server client] per una breve descrizione di ''smbclient''.<br/>
dove ''nome_condivisione'' è il nome di una delle condivisioni cui l'utente può accedere (NON il nome della cartella, ma lo "Sharename" definito in smb.conf e visibile tra l'altro attraverso il precedente comando). Si veda la pagina dedicata ai [[SAMBA: configurazione lato client#Accesso al server client]] per una breve descrizione di ''smbclient''.<br/>
'''NOTA''': in caso di problemi prima di scrivere sul forum provare a dare un occhio alla pagina di [[SAMBA: possibili problemi | diagnostica]].
'''NOTA''': in caso di problemi prima di scrivere sul forum provare a dare un occhio alla pagina di [[SAMBA: possibili problemi | diagnostica]].


Riga 374: Riga 385:
# dpkg-reconfigure smb2www
# dpkg-reconfigure smb2www
</pre>
</pre>
* Aprire il file <tt>'''/etc/smb2www/smb2www.conf'''</tt> e modificare la voce <tt>'''enabled=no'''</tt> in <tt>'''enabled=yes'''</tt>
* Aprire il file <code>'''/etc/smb2www/smb2www.conf'''</code> e modificare la voce <code>'''enabled=no'''</code> in <code>'''enabled=yes'''</code>


=== Sicurezza ===
=== Sicurezza ===
Riga 393: Riga 404:
</pre>
</pre>
Alcune note:
Alcune note:
* Se intendete (come credo) permettere l'accesso al servizio anche da altre macchine dovete cambiare la direttiva <tt>'''allow from 127.0.0.1'''</tt> con <tt>'''Allow from All'''</tt> o <tt>'''Allow from 192.168.1.0/24'''</tt> (o simili, a seconda della classe della vostra rete LAN)
* Se intendete (come credo) permettere l'accesso al servizio anche da altre macchine dovete cambiare la direttiva <code>'''allow from 127.0.0.1'''</code> con <code>'''Allow from All'''</code> o <code>'''Allow from 192.168.1.0/24'''</code> (o simili, a seconda della classe della vostra rete LAN)
* Se intendete  utilizzare la gestione utenti di Linux aggiungete la direttiva  <tt>'''AllowUserFile /etc/passwd'''</tt>
* Se intendete  utilizzare la gestione utenti di Linux aggiungete la direttiva  <code>'''AllowUserFile /etc/passwd'''</code>
* Ulteriori informazioni si trovano in <tt>/usr/share/doc/smb2www/index.html</tt>
* Ulteriori informazioni si trovano in <code>/usr/share/doc/smb2www/index.html</code>
 
[[Categoria:Reti con Windows]]
[[Categoria:Samba]]

Versione attuale delle 14:00, 15 dic 2019

Guida estesa

Sommario

  1. Lato server
  2. Lato client
  3. Esempi
  4. Troubleshooting
  5. Approfondimenti

Modulo principale

Installazione

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

# apt-get update && apt-get install samba smbfs cifs-utils

In breve:

  • smbd: questo demone è sostanzialmente il cuore di Samba; in ascolto sulla 445/tcp, gestisce le autenticazioni e dà accesso ai filesystem e allo spooler di stampa.
  • 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. È il primo dei due demoni ad avviarsi.
  • smbpasswd: strumento per la creazione utenti Samba. Un utente Samba dovrà essere anche un utente presente sulla macchina.
  • testparm: strumento per la verifica del file /etc/samba/smb.conf.
  • nmblookup: risolve i nomi host di un domain Samba (NetBIOS name) in indirizzi IP (es: nmblookup nomehost).ù
  • winbindd: fornisce funzionalità aggiuntive a smbd (installato dal pacchetto cifs-utils)..
  • mount e umount, non sono strumenti forniti da SAMBA, ma applicativi già presenti in linux; supportano un'ampia gamma di filesystem, tra cui anche SMBFS e CIFS grazie rispettivamente ai pacchetti smbfs e cifs-utils.
  • smbmount, smbumount: strumenti alternativi a mount e umount utilizzati per montare/smontare filesystem smbfs (installati dal pacchetto smbfs).

Per i client si veda la sezione loro dedicata.

Configurazione

Si compone di due fasi principali:

  • Composizione del file /etc/samba/smb.conf.
  • Creazione degli utenti che avranno accesso alle risorse condivise tramie smbpasswd.

Il file smb.conf

E' sostanzialmente un elenco di sezioni sotto ognuna delle quali si definiscono uno o più parametri. Ci sono due tipi principali di sezioni:

  • GLOBALE, dove semplicemente si definisco sia i parametri di "sistema" sia quelli comuni e/o più usati;
  • RISORSA, dove sono definiti tutti quei parametri specifici e funzionali ad una certa risorsa (directory, lettore, stampante ecc.) che si vuole condividere o per abilitare specifiche funzionalità avanzate di samba.

In ogni file di configurazione andrà definita una sola sezione globale, mentre dovranno essere scritte tante sezioni risorse quante sono le risorse da condividere e/o funzionalità avanzate da abilitare. Il file smb.conf avrà dunque un aspetto di questo tipo (al netto degli eventuali commenti):

[global]
    parametro1 = valore
    ...
    parametroN = valore

[Condivisione1]
    parametro1 = valore
    ...
    parametroN = valore

...

[CondivisioneM]
    parametro1 = valore
    ...
    parametroN = valore

[Periferica1]
    parametro1 = valore
    ...
    parametroN = valore

...

[PerifericaM]
    parametro1 = valore
    ...
    parametroN = valore

[printers]
    parametro1 = valore
    ...
    parametroN = valore

[Stampante1]
    parametro1 = valore
    ...
    parametroN = valore

...

[StampanteM]
    parametro1 = valore
    ...
    parametroN = valore

ecc.

Info.png Nota
Data la moltitudine di parametri configurabili in questa guida ci si limiterà a trattarne solo una piccola parte. Per una panoramica completa si invita il lettore a fare riferimento alla pagina (man5) di Samba.


Warning.png ATTENZIONE
Esistono parametri che devono essere dichiarati nella sola sezione global, parametri che devono essere dichiarati solo nelle sezioni dedicate alle singole risorse e infine parametri che possono essere definiti in entrambi i tipi di sezione.


In relazione ai parametri utilizzati in questa guida (spiegati nelle successive sezioni):

  • GLOBALI, ovvero che possono essere inseriti nella sola sezione global
    • workgroup
    • server string
    • netbios name
    • netbios aliases
    • include
    • security
    • guest account
    • map to guest
    • username map
    • printing
    • load printers
  • GENERICI, ovvero che possono essere dichiarati in entrambi i tipi di sezioni; in linea generale se un parametro viene definito sia nella sezione global che in una specifica allora per quanto riguarda la suddetta risorsa sarà utilizzato come valore quanto dichiarato localmente.
    • allow hosts/hosts allow
    • guest ok/public
    • guest only/only guest
    • create mask
    • directory mask
    • browseable/browsable
    • read only
    • writeable/writable
    • valid users
  • SPECIFICI, ovvero che possono essere inseriti nelle sole sezioni dedicate alle singole risorse
    • comment
    • path
    • printable
    • preexec
    • postexec

Parametri globali

  
[global]
    hosts deny = ALL
    hosts allow = 127.0.0.1 192.168.1.0/24    
    workgroup = debianizzati
    server string = server@debianizzati.org
    security = user
    guest account = ospite
    map to guest = Bad User
    username map = /etc/samba/utenti.map
    netbios name = debianizzati
    netbios aliases = alias1 ... aliasN
    include = /etc/samba/smb.conf.%L

    passwd program = /bin/passwd %u
    pam password change = yes
    obey pam restrictions = yes
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    unix password sync = Yes
  • host deny e hosts allow: combinazione di istruzione per definire un range di IP ai quali è permesso l'accesso a tutte le risorse specificate nel seguito del file di configurazione; in questo caso vengono accettati tutti gli indirizzi compresi tra 192.168.1.1 e 192.168.1.254. Si noti che è possibile specificare più indirizzi e/o gruppi di indirizzi semplicemente separandoli con uno spazio, ad esempio allow hosts = 127.0.0.1 192.168.1.0/24. Qualora l'utente non volesse rendere disponibile tutte le risorse agli stessi range di indirizzi allora il parametro allow hosts non dovrebbe essere definito qui, ma in ciascuna delle sezioni dedicate alle singole risorse condivise. Il parametro è sostanzialmente additivo, ovvero il gruppo di indirizzi ammissibile per ogni risorsa è dato dalla somma di quelli specificati in questa sezione e da quelli definiti per la singola risorsa. Questo parametro è del tutto equivalente a hosts allow.
  • workgroup: nome del gruppo di lavoro; non è un parametro critico, nel senso che anche se viene definito un nome differente da quello cui appartengono tutte le altre macchine della rete il risultato è che in windows il nome del server comparirà sotto un differente gruppo di lavoro.
  • server string: stringa che identifica il server.
  • security: definisce il "modo" con cui samba gestisce l'autenticazione degli utenti.
    • user: è il valore predefinito, implica che sia il nome delle risorse sia il loro contenuto risultano indisponibili all'utente fintanto che questi non si è autenticato con successo; deroga a questo principio il caso in cui l'utente venga automaticamente autenticato come ospite (si veda map to guest).
    • share: è il valore storico, usato come predefinito nelle versioni di samba precedenti la terza; semplificando si può dire che gli utenti possono vedere le risorse, ma non accedervi, anche senza essersi autenticati con successo (quindi chiunque è in grado di vedere l'elenco delle risorse). share È UN VALORE DEPRECATO.
    • domain e server: sono modalità specifiche per reti dove è configurato un dominio e non semplicemente un gruppo di lavoro.
  • guest account: permette di definire l'utente da usare come utenza guest (il valore predefinito è nobody), in questo esempio l'utente ospite (che come ogni altro utente deve esistere sia in linux che in samba).
  • map to guest: questo parametro torna principalmente utile se si vuol creare una condivisione accessibile a chiunque tramite l'utenza guest (ovvero se si vuole permettere l'accesso ad una o più risorse senza che vengano richieste username e password) quando sia stato impostato security = user o security = domain. Ci sono quattro valori possibili di questo parametro:
    • Never, valore di default, prevede che qualsiasi richiesta in cui username o password fornite siano errati venga respinta.
    • Bad User, apre una serie di casistiche a seconda delle situazioni specifiche; sinteticamente vale quanto detto nel manuale, ovvero che gli utenti che in windows hanno uno username inesistente in samba vengono automaticamente autenticati come ospiti ("guest", si veda il paragrafo "Creazione utenti e autenticazione - L'utenza guest ovvero le condivisione pubbliche").
    • Bad Password e Bad Uid, si veda il manuale.
  • username map: indica un file testuale contenente la mappatura di uno più utenti, ovvero permette di trasformare un nome utente in un altro. Ogni riga di tale file (utenti.map nell'esempio) deve contenere il nome linux dell'utente seguito da un uguale e poi dal (o dai) nome windows dello stesso, ad esempio le righe root = admin administrator e mario = "Mario Rossi" mappano i nomi admin e administrator a root, mentre "Mario Rossi" a mario. La mappatura dei nomi può tornare ad esempio utile per impedire che uno o più utenti dotati di nome linux differente da quello windows possano accedere inizialmente come guest al server.
  • netbios name: stringa che sostituisce nella maggior parte dei casi (si veda il manuale) l'hostname della macchina (solo per quantoriguarda la visualizzazione da parte dei client).
  • netbios aliases: permette di identificare un server samba attraverso più nomi. Quest'opzione risulta particolarmente utile in congiunzione con il parametro include.
  • include: permette di includere nel file di configurazione smb.conf un altro file di configurazione (e quindi le relative impostazioni). Nell'esempio riportato viene importato il file /etc/samba.smb.conf.alias, dove alias è uno degli alias definiti attraverso il parametro netbios aliases (il carattere %L serve proprio a leggere l'imput dell'utente). Questo artificio è utile in quei casi dove può essere necessario caricare impostazioni parzialmente differenti a seconda del gruppo di utenti che accede al server, basta cioè che ciascuno di questi gruppi acceda al server sfruttando un diverso alias, ad esempio commerciale, amministrazione, tecnico, ecc.
  • passwd program: definisce che programma deve usare samba per gestire le proprie password. Samba non ha un suo applicativo per fare questo, quindi deve appoggiarsi a quello che il sistema usa normalmente per gestire le sue password. Questo parametro da solo non permette la sincronizzazione delle password samba con quelle unix di sistema. Se il parametro pam password change è impostato su yes allora il presente parametro viene ignorato, ovvero è inutile specificare passwd program se si specifica contestualmente pam password change = yes.
  • pam password change: se impostato su yes il sistema userà PAM invece dell'applicativo definito in passwd program per cambiare automaticamente le password samba (quindi è inutile definire contemporaneamente sia passwd program che pam password change = yes). Questo parametro da solo non permette la sincronizzazione delle password samba con quelle unix di sistema, inoltre viene ignorato se vale encrypt passwords = yes (che è il valore predefinito!).
  • obey pam restrictions: impostare su yes solo nel caso in cui sia anche pam password change = yes.
  • unix passwd sync: impostare questo parametro su yes fa si che quando la password di un utente samba viene cambiata anche la password linux è modificata.
  • passwd chat: definisce la stringa che samba passerà a linux per cambiare una password unix. Non cambiare il valore indicato a meno di non sapere quel che si sta facendo. Questo parametro può essere omesso se non si è definito unix passwd sync = yes.

Parametri generici

guest ok = no
guest only = yes
browseable = yes 
public = yes
valid users = utente1, utente2, utenteN
read only = yes
create mask = 0750
directory mask = 0750
  • guest ok: equivalente al parametro public definisce se una condivisione è accessibile o meno all'utenza guest, posto che questa sia abilitata (si veda la sezione dedicata alla creazione degli utenti). Attribuire no come valore a questo parametro nella sezione global è di norma inutile, visto che tale è proprio il suo valore predefinito, tuttavia ciò non è vero nel caso in cui il parametro map to guest sia impostato su un valore diverso da never, come in questo esempio. Omettere di specificare no in questo caso comporterebbe l'impossibiiltà di accedere con utente diverso da guest a tutte quelle risorse per cui non è stato esplicitamente definito guest ok = no.
  • guest only: se impostato su yes restringe l'accesso alla risorsa alla sola utenza guest;
  • browseable, se impostato su yes rende visibile la condivisione nell'elenco delle risorse disponibili; dichiarare esplicitamente questo parametro con valore yes è utile solo qualora nella sezione global sia stato dichiatato esplicitamente browseable = no , essendo yes il valore predefinito;
  • public, se impostato su yes rende la risorsa di libero accesso; è del tutto equivalente all'opzione guest ok;
  • valid users, definisce un elenco di utenti abilitati ad accedere alla/e risorsa/e in esame; specificando una stringa vuota si ottiene di garantire l'accesso a tutte le utenze definite tramite smbpasswd. Se un utenza è indicata sia in valid users che in invalid users prevale la seconda, ovvero all'utente è precluso l'accesso.
  • read only, imposta la risorsa condivisa in sola lettura, è l'esatto opposto dell'opzione writeable, ovvero porre read only = yes equivale a writeable = no e viceversa; dichiarare esplicitamente questo parametro con valore yes è utile solo qualora nella sezione global sia stato dichiatato esplicitamente read only = no , essendo yes il valore predefinito.
Info.png IMPORTANTE
I successivi due parametri NON devono essere dichiarati nelle sezioni dedicate alle stampanti.
  • create mask: definisce lo schema di permessi in stile UNIX che i file (e non delle cartelle) creati dai client windows avranno. Si noti che questo parametro non altera in alcun modo i permessi dei file eventualmente già presenti in una cartella condivisa oppure creati al di fuori di samba, per esempio da un utente che si è collegato tramite SSH;
  • directory mask: parametro identico a create mask, ma riguarda le cartelle invece dei file.

Parametri specifici

Essendo difficile una discussione unitaria si adotta un approccio caso per caso. Si noti dunque che inevitabilmente nei seguenti esempi potranno essere utilizzati anche parametri generici e non solo specifici.

Condivisione di una directory

Adesso sempre dentro il nostro /etc/samba/smb.conf, creiamo la sezione specifica per la risorsa che vogliamo condividere. In questo esempio condivideremo una directory.

 [shared]
     comment = Directory Shared
     path = /dir/da/condividere
  • comment = commento per la directory;
  • path = percorso della directory condivisa;
Condivisione di una stampante

Adesso analizziamo i parametri da aggiungere al file /etc/samba/smb.conf per poter condividere una stampante. Aggiungiamo alla sezione global:

 
 [global]
     printing = [sistema di stampa utilizzato, es: cups, lprng..]
     load printers = yes

Creiamo inoltre la sezione printers che fornirà i parametri di accesso alle nostre stampanti:

[printers]
    path = /var/spool/samba
    guest ok = yes
    printable = yes
Warning.png ATTENZIONE
Debian non crea in automatico la directory /var/spool/samba.


Questa directory è adibita solo allo spool di stampa, volendo molti la sostituiscono con /tmp. Se decidete di crearla voi, per un corretto funzionamento impostatele i permessi: nobody:nobody con:

 # chown nobody.nobody /var/spool/samba
 # chmod -R 755 /var/spool/samba

Dopodiché scriviamo la sezione specifica per la nostra stampante (es. una canon).

 [canon]
    comment = Canon Printer
    path = /var/spool/samba
 
Condivisione di dispositivi di lettura (CD-ROM, DVD..)

Poniamo come esempio di avere due pc e che solo uno dei due monti un lettore DVD. Bene, guardiamo come poter accedere ad un file, che risiedesse su un supporto DVD, dalla macchina sprovvista di lettore:

 [dvd]
    comment = Lettore DVD-R
    preexec = mount /media/cdrom
    postexec = umount /media/cdrom
    path = /media/cdrom
    writable = no

Parametri supplementari al nostro /etc/samba/smb.conf:

  • preexec: 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.

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.

Bene, a questo punto il file può considerarsi sufficientemente configurato per i nostri scopi.

Creazione utenti e Autenticazione

Info.png IMPORTANTE
Perché un utente possa accedere alle risorse appena definite in /etc/samba/smb.conf devono essere soddisfatte due condizioni:
  • Tutti gli utenti samba che si vuol creare devono esistere anche in linux, il che tipicamente significa essere presenti nel file /etc/passwd.
  • Ciascun utente samba deve essere esplicitamente creato attraverso il comando smbpasswd.


Per aggiungere o modificare la password di un utente:

# smbpasswd -a utente

Verrà richiesto di immettere due volte la password da attribuire al suddetto utente; fatto ciò in caso di nuovo utente comparirà il messaggio Added user utente. Per eliminare la password di un utente

# smbpasswd -n utente

Digitando invece # smbpasswd -an utente si aggiunge un utente senza attribuirgli alcuna password. Si noti che se il parametro security è impostato sul valore user allora il suddetto utente non potrà autenticarsi presso samba e quindi non avrà alcun accesso alle risorse. Nonrmalmente non si attribuisce password all'utenza da usare come guest, poiché per definizione viene usata per garantire l'accesso ad utenti anonimi. Per eliminare un utente dall'elenco utenti di samba (con questo comando non si vanno a toccare gli utenti linux):

# smbpasswd -x utente
Info.png Nota
Il file con l'elenco utenti e password di samba è di norma memorizzato in /var/lib/samba/passdb.tdb in forma criptata

Ogni utente ha infine la possibilità di modificare la propria password (a meno che naturalmente non sia stato disabilitato l'accesso tramite bash) digitando:

$ smbpasswd

Si noti che qualora nel range degli IP ammessi non sia stato specificato anche 127.0.0.1 al termine della procedura di modifica password si riceverà il seguente errore: machine 127.0.0.1 rejected the negotiate protocol. Error was : NT_STATUS_INVALID_NETWORK_RESPONSE.

Il nome utente è la password definite con il precedente comando costituiscono le credenziali necessarie ad un utente per autenticarsi con successo presso il server samba nel momento in cui si connetteranno le risorse condivise (smbmount, smbclient in linux, finestrella di login in windows). Si sottolinea che ciò è strettamente vero nel solo caso in cui sia impostato security = user e map to guest = never, poiché negli altri casi ciò potrebbe non essere vero; per esempio se è security = share è possibile vedere tutte le risorse disponibili (e per cui non si sia definito browseable = no) senza alcun bisogno di immettere alcun tipo di credenziali (queste vengono al limite richieste solo quando si richiede di accedere ad una specifica risorsa).

Warning.png ATTENZIONE
Oltre a definire correttamente gli utenti in samba è sempre necessario definire correttamente i permessi UNIX sulle cartelle che si andranno a condividere, ovvero se si desidera che l'utente pinco pallino abbia accesso sia in lettura che scrittura ad una certa cartella non è sufficiente imporre read only = no, ma bisogna che ad esempio l'utente in questione sia proprietario della cartella oppure che questa abbia schema 777, ecc.


Per visualizzare l'elenco degli utenti samba registrati:

# pdbedit -L -v

L'utenza guest ovvero le condivisione pubbliche

Il primo passo per rendere una risorsa pubblica, nel senso di accessibile a chiunque senza bisogno di credenziali, ma comunque sempre all'interno dell'intervallo di IP ammissibili definiti con allow hosts, è come già scritto definire guest ok = yes. Fatto ciò ci sono due strade per il secondo passo: la prima consiste nel definire security = share, l'altra prevede di mantenere security = user e imporre map to guest = Bad User (si veda quanto precedentemente scritto a proposito dei suddetti parametri).

Info.png NOTE
  • Quanto qui scritto non tiene conto per una questione di semplicità delle casistiche security = domain e security = server, trattandosi di parametri normalmente usati in configurazioni di rete ben più complesse della rete domestica e del piccolo ufficio.
  • Nel caso di security - user si sconsiglia di restringere l'accesso alle varie risorse inserendo il parametro valid users nella sezione globale, poiché in tal caso è possibile che l'utenza guest non riesca più ad accedere alle risorse ad essa dedicate.

L'importante è che l'utente da usare come guest sia stato creato correttamente (che sia abilitato o meno è irrilevante); a tal proposito è possibile o usare l'utenza predefinita nobody oppure usarne un'altra a scelta definendo nella sezione global il parametro guest account = mio_utente, dove mio_utente deve essere un utenza già esistente in linux e in samba.
A titolo informativo si ricorda che è possibile creare un utente in linux disabilitandone subito la possibilità di autenticarsi aggiungendo al comando adduser l'opzione --disabled-login; qualora invece l'utente sia già esistente è sufficiente usare l'opzione -l del comando passwd per disabilitarne la capacità di autenticarsi al sistema.

Vale la pena esplicitare cosa succede nel caso security = user e map to guest = Bad User quando l'utente windows clicca sull'icona del server:

  • Utenza windows non esistente o non mappata: l'utente windows viene automaticamente autenticato come guest; si noti che in tal caso è sempre possibile autenticarsi nuovamente con una differente utenza quando si accede ad una risorsa non pubblica, tuttavia una volta fatto ciò l'utente sarà visto dal server samba sempre con il nome utente appena immesso, a meno di non disconnettersi e riconnettersi a windows.
  • Utenza windows esistente o mappata
    • Password windows coincidente: l'utente windows viene automaticamente autenticato con il suo nome utente o con quello definito dalla mappa utenti, parametro username map.
    • Password windows non coincidente: quando allo stesso utente sono associate due password differenti in windows e samba-linux viene proposta la finestra di login; in caso di immissione errata della password all'utente viene negato qualsiasi accesso alle risorse remote (compreso il semplice elenco delle risorse condivise). Si noti che un utente con nome windows coincidente con uno di quelli linux non può usare l'utenza guest, pertanto se l'utenza omonima sul server linux non è di sua proprietà egli non potrà autenticarsi presso il server con il suo nome utente windows. In tal caso l'unico modo per garantirgli l'accesso è creare un apposita utenza in linux e comunicargli le relative credenziali (attenzione a non rimappare l'utenza poiché in tal caso verrebbe bloccato l'accesso all'altro utente).
Note su security = user

Perché l'utenza guest funzioni correttamente attenersi a quanto segue oltre a quanto già detto:

  • Evitare accuratamente di dichiarare il parametro valid users sia nella sezione [global] che in quella della risorsa che deve essere accessibile all'utenza "guest".
  • Dichiarare nel file di mappatura utenti l'associazione account_guest_linux = guest, che nel caso predefinito equivale a scrivere nobody = guest

Sincronizzazione delle password samba e linux

Qualora si desiderasse mantenere sincronizzate le password linux (passwd) con quelle definite attraverso smbpasswd è possibile ricorrere ad appositi parametri, come già scritto.

Info.png NOTA
con questo metodo la sincronizzazione è unidirezionale, ovvero qualsiasi modifica alla password samba verrà automaticamente propagata a quella linux, ma non viceversa.

Oltre ad utilizzare passwd per impostare le password è anche possibile usare PAM, badando bene che i due metodi sono mutualmente esclusivi. In particolare impostare pam password change = yes comporta l'automatica esclusione della prima modalità.
In entrambi i casi devono essere sempre definiti i parametri passwd chat (anche il testo da passare può essere il medesimo) e unix passwd sync = yes.
Nel caso di passwd è necessario specificare oltre ai precedenti due anche il parametro passwd program, mentre nel secondo devono essere specificati sia il succitato pam password change = yes che obey pam restrictions = yes (quest'ultimo potrebbe forse essere opzionale).
Esplicitando, nel primo caso andrà aggiunta alla sezione [global] quanto segue:

passwd program = /bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes

Mentre nel secondo:

pam password change = yes
obey pam restrictions = yes
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes

Riavvio e test del server

Creato/modificato il file smb.conf e creati gli utenti è il momento di riavviare il server:

# /etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
#

Terminato il riavvio dei vari demoni si procede a testare la validità del file /etc/samba/smb.conf digitando:

# testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
Processing section "[shared]"
Processing section "[canon]"
Processing section "[dvd]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

Premendo enter vedremo il resoconto del nostro file.
Se non ci sono errori il passo successivo, prima di configurare/usare i client, è verificare che almeno dal server stesso tutte le condivisioni siano visibili e accessibili. Digitare:

smbclient -L localhost

Si noti che può o meno essere richiesto di autenticarsi a seconda del livello di sicurezza impostato, in ogni caso dovrebbe comparire a video qualcosa di simile a:

Domain=[vostro_dominio] OS=[Unix] Server=[Samba 3.6.6]

    Sharename       Type      Comment
    ---------       ----      -------
    IPC$            IPC       IPC Service (nome_server server (Samba, Debian))
    condivis1       Disk
    condivis2       Disk
    ...

Domain=[vostro_dominio] OS=[Unix] Server=[Samba 3.6.6]

    Server               Comment
    ---------            -------
    NOME_SERVER          nome_server server (Samba, Debian)

    Workgroup            Master
    ---------            -------
    WORKGROUP            NOME_SERVER
    ...

Verificato che tutte le condivisioni che si sono impostate in smb.conf siano presenti si può provare a connettersi alle suddette usando un utente abilitato al servizio samba, digitando:

smbclient //localhost/nome_condivisione -U nome_utente

dove nome_condivisione è il nome di una delle condivisioni cui l'utente può accedere (NON il nome della cartella, ma lo "Sharename" definito in smb.conf e visibile tra l'altro attraverso il precedente comando). Si veda la pagina dedicata ai SAMBA: configurazione lato client#Accesso al server client per una breve descrizione di smbclient.
NOTA: in caso di problemi prima di scrivere sul forum provare a dare un occhio alla pagina di diagnostica.

Moduli Aggiuntivi

smb2www

Potrebbe essere comodo attivare un servizio attraverso il quale gli utenti della nostra rete possano accedere (in sola lettura) alle condivisioni Samba del nostro server, magari per scaricare qualche file...
Il programma smb2www è un servizio realizzato in Perl che rende possibile tutto questo. Per funzionare deve ovviamente essere installato un server web Apache funzionante.

Installazione

Per installarlo è sufficiente utilizzare apt:

# apt-get update
# apt-get install smb2www

Configurazione

Per configurare correttamente il servizio ci sono due strade:

  • utilizzare dpkg per riconfigurarlo:
# dpkg-reconfigure smb2www
  • Aprire il file /etc/smb2www/smb2www.conf e modificare la voce enabled=no in enabled=yes

Sicurezza

Per aumentare la sicurezza dell'applicazione, l'autore consiglia di inserire queste righe nel file di configurazione del vostro server Apache:

<Location /cgi-bin/samba/>
   <Limit GET POST>
      order allow,deny
      allow from 127.0.0.1
      AuthName smb2www
      AuthType basic
      AuthUserFile /etc/smb2www/smb2www-users
      AuthGroupFile /dev/null
      require valid-user
      Satisfy Any
   </Limit>
</Location>

Alcune note:

  • Se intendete (come credo) permettere l'accesso al servizio anche da altre macchine dovete cambiare la direttiva allow from 127.0.0.1 con Allow from All o Allow from 192.168.1.0/24 (o simili, a seconda della classe della vostra rete LAN)
  • Se intendete utilizzare la gestione utenti di Linux aggiungete la direttiva AllowUserFile /etc/passwd
  • Ulteriori informazioni si trovano in /usr/share/doc/smb2www/index.html