2 894
contributi
Wtf (discussione | contributi) |
Wtf (discussione | contributi) |
||
(8 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{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 [ | {{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 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 | * <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 | * <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 | * <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 | * <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 | * <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 = 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 = 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 = | 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 | {{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 [ | 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 < | * 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 < | * 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 < | * Se intendete utilizzare la gestione utenti di Linux aggiungete la direttiva <code>'''AllowUserFile /etc/passwd'''</code> | ||
* Ulteriori informazioni si trovano in < | * Ulteriori informazioni si trovano in <code>/usr/share/doc/smb2www/index.html</code> | ||
[[Categoria:Reti con Windows]] | |||
[[Categoria:Samba]] |
contributi