Difference between revisions of "Samba (Italiano)"

From ArchWiki
Jump to: navigation, search
m (Installazione: updated)
(wikify some external links, use https for archlinux.org)
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Networking (Italiano)]]
 
[[Category:Networking (Italiano)]]
{{i18n|Samba}}
+
[[cs:Samba]]
 +
[[da:Samba]]
 +
[[en:Samba]]
 +
[[es:Samba]]
 +
[[fr:Samba]]
 +
[[ru:Samba]]
 +
[[sr:Samba]]
 +
[[tr:Samba]]
 +
[[zh-CN:Samba]]
 +
[[zh-TW:Samba]]
 
{{Article summary start|Sommario}}
 
{{Article summary start|Sommario}}
 
{{Article summary text|Installazione, configurazione e risoluzione dei problemi per  Samba}}
 
{{Article summary text|Installazione, configurazione e risoluzione dei problemi per  Samba}}
Line 7: Line 16:
 
{{Article summary wiki|Samba Domain Controller}}
 
{{Article summary wiki|Samba Domain Controller}}
 
{{Article summary end}}
 
{{Article summary end}}
'''Samba''' è una reimplementazione del protocollo di rete SMB/CIFS, serve per facilitare la condivisione di file e stampanti tra sitemi Linux e Windows, come alternativa ad [[NFS (Italiano)|NFS]]. Samba è facilmente configurabile e le opzioni sono molto chiare. In ogni caso, gli utenti meno esperti potrebbero incontrare problemi per la sua complessità e per i meccanismi non intuitivi. Si consiglia quindi di attenersi alle seguenti indicazioni.
+
'''Samba''' è una re implementazione del protocollo di rete SMB/CIFS, serve per facilitare la condivisione di file e stampanti tra sistemi Linux e Windows, come alternativa ad [[NFS (Italiano)|NFS]]. Samba è facilmente configurabile e le opzioni sono molto chiare. In ogni caso, gli utenti meno esperti potrebbero incontrare problemi per la sua complessità e per i meccanismi non intuitivi. Si consiglia quindi di attenersi alle seguenti indicazioni.
  
 
==Installazione==
 
==Installazione==
L'installazione del solo <nowiki>client</nowiki> è sufficente per quei computer che non dovranno condividere file, ma solo accedervi.
+
Installare {{Pkg|smbclient}} per l'installazione del solo '''client''' è sufficiente per quei computer che non dovranno condividere file, ma solo accedervi.
  
# pacman -S smbclient
+
Per poter condividere delle cartelle, installare il pacchetto '''server''' {{Pkg|samba}} (che include anche {{Pkg|smbclient}} come sua dipendenza).
 
+
Per poter condividere delle cartelle, installare il pacchetto <nowiki>server</nowiki> Samba(che include anche {{Package Official|smbclient}}):
+
 
+
# pacman -S samba
+
  
 
==Configurazione==
 
==Configurazione==
Il file {{Filename|/etc/samba/smb.conf}} deve essere creato prima di avviare il demone. Una volta creato, gli uteni possono optare per una interfaccia di configurazione avanzata come [[#SWAT: Samba web administration tool|SWAT]], invece di editare il file manualmente.
+
===Configrazione base===
 +
Il file {{ic|/etc/samba/smb.conf}} deve essere creato prima di avviare il demone. Una volta creato, gli utenti possono optare per una interfaccia di configurazione avanzata come [[#SWAT: Samba web administration tool|SWAT]], invece di editare il file manualmente.
  
===smb.conf===
+
Da root, copiare il file di configurazione di default in {{ic|/etc/samba/smb.conf}}:
Da root, copiare il file di configurazione di default in {{Filename|/etc/samba/smb.conf}}:
+
 
  # cp /etc/samba/smb.conf.default /etc/samba/smb.conf
 
  # cp /etc/samba/smb.conf.default /etc/samba/smb.conf
  
Aprire il file {{Filename|smb.conf}} e modificarlo secondo le necessità. La configurazione di default prevede la condivisione della cartella {{Filename|home}} di ogni utente. Crea inoltre una condivisione per le stampanti.
+
Aprire il file {{ic|smb.conf}} e modificarlo secondo le necessità. La configurazione di default prevede la condivisione della cartella {{ic|home}} di ogni utente. Crea inoltre una condivisione per le stampanti.
  
Maggiori informazioni riguardo alle opzioni disponibili possono essere trovate eseguedno il comando:
+
Maggiori informazioni riguardo alle opzioni disponibili possono essere trovate eseguendo il comando:
  
 
  $ man smb.conf
 
  $ man smb.conf
  
===Avviare il servizio automaticamente===
+
Per avviare automaticamente {{ic|samba}} all'avvio, aggiungerlo all'array {{ic|[[Daemon (Italiano)|DAEMONS]]}} in {{ic|/etc/[[rc.conf (Italiano)|rc.conf]]}}.
Se si usa FAM, avviare il [[Daemon (Italiano)|demone]] {{Codeline|fam}} prima di {{Codeline|samba}}. Gamin non ha bisogno di essere avviato come demone dato che sarà avviato automaticamente se necessario.
+
  
Senza effettuare un riavvio, FAM e Samba possono essere avviati con i comandi:
+
===Opzioni della shell===
# rc.d start fam
+
====Aggiungere gli utenti====
# rc.d start samba
+
Per accedere ad una condivisione Samba, sarà necessario aggiungere un utente samba.
  
Aggiungere {{Codeline|fam}} e {{Codeline|samba}} all'array <nowiki>DAEMONS</nowiki> nel file [[Rc.conf (Italiano)|rc.conf]] per l'avvio automatico del servizio.
+
Per Samba a partire dalla versione 3.4.0 e successive:
  
{{Nota| Non è più necessario usare {{Codeline|fam}} (fam solitamente non si avvia correttamente). Sarà quindi necessario aggiungere solamente il demone {{Codeline|samba}} nell'array {{Codeline|DAEMONS}} nel file {{Filename|/etc/rc.conf}}.}}
+
# pdbedit -a -u <user>
 +
 
 +
Per le precedenti versioni di Samba:
 +
 
 +
# smbpasswd -a <user>
 +
 
 +
Il database delle password smbpasswd può anche essere [[#Cambiamenti in Samba versione 3.4.0|convertito al nuovo formato]].
 +
 
 +
L'utente dovrà avere già un account di sistema sul server. Se l'utente non esiste si otterrà un errore:
 +
Failed to modify password entry for user "<user>"
 +
 
 +
Per aggiungere un nuovo utente di sistema Linux si può usare [[Users and Groups (Italiano)#Gestione degli utenti|adduser]]. Questo articolo non spiega come aggiungere utenti su sistemi Windows.
 +
 
 +
{{Nota|smbpasswd non è più il metodo di default per le autenticazioni Samba a partire da  [[Samba (Italiano)#Cambiamenti_in_Samba_versione_3.4.0|Samba versione 3.4.0]] }}
  
===SWAT: Samba web administration tool===
+
===Opzioni web===
 +
====SWAT: Samba web administration tool====
 
[http://samba.xsec.it/samba/docs/man/Samba-HOWTO-Collection/SWAT.html SWAT] è una comodità per Samba. Il programma principale si chiama swat e viene avviato attraverso il demone [[Wikipedia:xinetd|xinetd]] (ovvero eXtended InterNET Daemon).
 
[http://samba.xsec.it/samba/docs/man/Samba-HOWTO-Collection/SWAT.html SWAT] è una comodità per Samba. Il programma principale si chiama swat e viene avviato attraverso il demone [[Wikipedia:xinetd|xinetd]] (ovvero eXtended InterNET Daemon).
  
Ci sono diverse opinioni riguardo l'effettiva utilità di SWAT. Non importa quanto impegno si metta per produrre un tool di configurazione perfetto, rimarrà sempre una questione soggettiva ritenerlo utile. SWAT è un tool che attraverso un interfaccia Web, permette di configurare Samba. Sarà possibile effettuare una configurazione guidata per velocizzare e semplificare la configurazione, dispone dell'aiuto contestuale per ogni parametro del file {{Filename|smb.conf}}, permette inoltre di monitorare il corrente stato delle connessioni, ed anche di gestire le password di rete MS Windows [http://samba.xsec.it/samba/docs/man/Samba-HOWTO-Collection/SWAT.html].
+
Ci sono diverse opinioni riguardo l'effettiva utilità di SWAT. Non importa quanto impegno si metta per produrre un tool di configurazione perfetto, rimarrà sempre una questione soggettiva ritenerlo utile. SWAT è un tool che attraverso un interfaccia Web, permette di configurare Samba. Sarà possibile effettuare una configurazione guidata per velocizzare e semplificare la configurazione, dispone dell'aiuto contestuale per ogni parametro del file {{ic|smb.conf}}, permette inoltre di monitorare il corrente stato delle connessioni, ed anche di gestire le password di rete MS Windows [http://samba.xsec.it/samba/docs/man/Samba-HOWTO-Collection/SWAT.html].
  
 
{{Nota|In caso di problemi con SWAT, si può usare il più ampio tool di configurazione [[Webmin (Italiano)|Webmin]], e semplicemente caricare il relativo modulo SWAT.}}
 
{{Nota|In caso di problemi con SWAT, si può usare il più ampio tool di configurazione [[Webmin (Italiano)|Webmin]], e semplicemente caricare il relativo modulo SWAT.}}
  
{{Attenzione| Prima di usare SWAT. SWAT sostituirà se esiste il file {{Filename|smb.conf}} con un file più ottimizzato contenente i soli valori non di default e privo di commenti(anche di quelli inseriti dall'utente) .}}
+
{{Attenzione| Prima di usare SWAT. SWAT sostituirà se esiste il file {{ic|smb.conf}} con un file più ottimizzato contenente i soli valori non di default e privo di commenti(anche di quelli inseriti dall'utente) .}}
  
Per usare SWAT, si dovrà prima installare xinetd:
+
Per usare SWAT, si dovrà prima installare il pacchetto {{Pkg|xinetd}}.
# pacman -S xinetd
+
  
Modificare con un editor di testo il file {{Filename|/etc/xinetd.d/swat}}. Per abilitare SWAT, cambiare la linea {{Codeline|1=disable = yes}} in {{Codeline|1=disable = no}}.
+
Modificare con un editor di testo il file {{ic|/etc/xinetd.d/swat}}. Per abilitare SWAT, cambiare la linea {{ic|1=disable = yes}} in {{ic|1=disable = no}}.
  
 
  service swat
 
  service swat
Line 70: Line 87:
 
  }
 
  }
  
In alternativa è possibile aggiungere il servizio swat e la relativa porta al file {{Filename|/etc/services}} ed omettere le prime 3 righe della configurazione.
+
In alternativa è possibile aggiungere il servizio swat e la relativa porta al file {{ic|/etc/services}} ed omettere le prime 3 righe della configurazione.
  
Successivamente avviare il demone xinetd:
+
Successivamente avviare il [[Daemon (Italiano)|demone]] xinetd.
 
+
# rc.d start xinetd
+
  
 
L'interfaccia web è raggiungibile dalla porta di default, 901,
 
L'interfaccia web è raggiungibile dalla porta di default, 901,
 
  http://localhost:901/
 
  http://localhost:901/
  
===Aggiungere gli utenti===
+
==Accedere alle condivisioni==
Per accedre ad una condivisione Samba, sarà necessario aggiungere un utente samba.
+
Le risorse condivise dagli altri computer sulla rete sono accessibili e posso essere montate tramite interfacce grafiche(GUI) oppure attraverso la linea di comando(CLI). L’uso dell’interfaccia grafica è meno diffusa. Solo alcuni Desktop Environments dispongono di apposite utility per accedere alle risorse condivise. Comunque la maggior parte non ne dispone. Infatti, i più leggeri DE e Window Manager non dispongono di metodi grafici nativi.
  
Per Samba a partire dalla versione 3.4.0 e successive:
+
Ci sono due fasi nell’accesso alle condivisioni. La prima è il meccanismo di basso livello del file system, e la seconda è l’interfaccia grafica che consente all’utente di montare le risorse condivise. Alcuni Desktop Environments hanno la prima parte integrata in essi.
 
+
# pdbedit -a -u <user>
+
 
+
Per le precedenti versioni di Samba:
+
 
+
# smbpasswd -a <user>
+
 
+
Il database delle password smbpasswd può anche essere [[#Cambiamenti in Samba versione 3.4.0|convertito al nuovo formato]].
+
 
+
L'utente dovrà avere già un account di sistema sul server. Se l'utente non esiste si otterrà un errore:
+
Failed to modify password entry for user "<user>"
+
 
+
Per aggiungere un nuovo utente di sistema Linux si può usare [[Users and Groups (Italiano)#Gestione degli utenti|adduser]]. Questo articolo non spiega come aggiungere utenti su sistemi Windows.
+
 
+
{{Nota|smbpasswd non è più il metodo di default per le autenticazioni Samba a partire da  [[Samba (Italiano)#Cambiamenti_in_Samba_versione_3.4.0|Samba versione 3.4.0]] }}
+
 
+
==Accedere alle condivisioni Samba==
+
Le risorse condivise dagli altri computer sulla rete sono accessibili e posso essere montate tramite inerfacce grafiche(GUI) oppure attraverso la linea di comando(CLI). L’uso dell’interfaccia grafica è meno diffusa. Solo alcuni Desktop Environments dispongono di apposite utility per accedere alle risorse condivise. Comunque la maggior parte non ne dispone. Infatti, i più leggeri DE e Window Manager non dispongono di metodi grafici nativi.
+
 
+
Ci sono due fasi nell’accesso alle condivisioni. La prima è il meccanismo di basso livello del file system, e la seconda è l’interfaccia grafica che consente all’utene di montare le risorse condivise. Alcuni Desktop Environments hanno la prima parte integrata in essi.
+
  
 
Se si usa KDE, si ha la possibilità di vedere le condivisioni Samba. Non sarà quindi necessario installare pacchetti addizionali (comunque per avere un'interfaccia per la configurazione all'interno della schermata "Impostazioni di Sistema" sarà necessario installare il pacchetto kdenetwork-filesharing dal repository [extra]. Un'alternativa è SMB4K.). Se invece, si vuole accedere alle condivisioni da GNOME oppure dalla shell, sarà necessario installare dei pacchetti aggiuntivi.
 
Se si usa KDE, si ha la possibilità di vedere le condivisioni Samba. Non sarà quindi necessario installare pacchetti addizionali (comunque per avere un'interfaccia per la configurazione all'interno della schermata "Impostazioni di Sistema" sarà necessario installare il pacchetto kdenetwork-filesharing dal repository [extra]. Un'alternativa è SMB4K.). Se invece, si vuole accedere alle condivisioni da GNOME oppure dalla shell, sarà necessario installare dei pacchetti aggiuntivi.
  
 
===Accedere alle condivisioni Samba da GNOME/Xfce4===
 
===Accedere alle condivisioni Samba da GNOME/Xfce4===
Per poter accedere alle condivisioni Samba da Nautilus sarà necessario installare i pacchetti gvfs-smb e gnome-vfs
+
Per poter accedere alle condivisioni Samba da Nautilus sarà necessario installare i pacchetti {{Pkg|gvfs-smb}} e {{Pkg|gnome-vfs}}
 
+
# pacman -S gvfs-smb gnome-vfs
+
 
+
Per potervi accedere usando thunar in Xfce4 sarà necessario installare solamente gvfs-smb
+
  
# pacman -S gvfs-smb
+
Per potervi accedere usando thunar in Xfce4 sarà necessario installare solamente {{Pkg|gvfs-smb}}
  
Dalla finestra di Nautilus/Thunar, premere {{Keypress|CTRL}}+{{Keypress|L}} oppure andare sul menù "Vai" e selezionare "Posizione..." -- entrambe le azioni porteranno il cursore nella barra del percorso. Digitare:
+
Dalla finestra di Nautilus/Thunar, premere {{Keypress|Ctrl}}+{{Keypress|l}} oppure andare sul menù "Vai" e selezionare "Posizione..." -- entrambe le azioni porteranno il cursore nella barra del percorso. Digitare:
  
 
  smb://nome_server/condivisione
 
  smb://nome_server/condivisione
  
{{Nota|Se non è stato inserito il nome server nel file {{Filename|/etc/hosts}}, si dovrà inserire l'indirizzo IP del server invece del nome.}}
+
{{Nota|Se non è stato inserito il nome server nel file {{ic|/etc/hosts}}, si dovrà inserire l'indirizzo IP del server invece del nome.}}
  
Un'altro programma per GNOME è Gnomba.
+
Un altro programma per GNOME è Gnomba.
  
Se si utilizza {{Package Official|iptables}} sul proprio sistema, sarà necessario aver caricato il modulo {{Codeline|nf_conntrack_netbios_ns}}
+
Se si utilizza {{Pkg|iptables}} sul proprio sistema, sarà necessario aver caricato il modulo {{ic|nf_conntrack_netbios_ns}}
  
 
  modprobe nf_conntrack_netbios_ns
 
  modprobe nf_conntrack_netbios_ns
  
 
===Accedere alle condivisioni da altri ambienti grafici===
 
===Accedere alle condivisioni da altri ambienti grafici===
Ci sono diversi programmi utili, ma sarà necessario compilarsi il pacchetto per installarli. Ciò può essere fatto tramite gli strumenti di pacchettizazione di Arch. Un vantaggio di questi programmi è che non necessitano di particolari ambienti per essere supportati, e quindi non hanno molte dipendenze.
+
Ci sono diversi programmi utili, ma sarà necessario compilarsi il pacchetto per installarli. Ciò può essere fatto tramite gli strumenti di pacchettizzazione di Arch. Un vantaggio di questi programmi è che non necessitano di particolari ambienti per essere supportati, e quindi non hanno molte dipendenze.
  
LinNeighborhood è non è legato a nessun DE o WM. Può essere visto come un semplice generico browser di rete con interfaccia grafica, che permette il mount delle condivisioni. Non molto curato graficamente, ma efficente.
+
LinNeighborhood è non è legato a nessun DE o WM. Può essere visto come un semplice generico browser di rete con interfaccia grafica, che permette il mount delle condivisioni. Non molto curato graficamente, ma efficiente.
  
 
Altri possibili programmi includono pyneighborhood e RUmba, inoltre anche il plugin xffm-samba per Xffm.
 
Altri possibili programmi includono pyneighborhood e RUmba, inoltre anche il plugin xffm-samba per Xffm.
Line 141: Line 132:
  
 
=====smbnetfs=====
 
=====smbnetfs=====
1. Installare {{Package Official|smbnetfs}}:
+
1. Installare {{Pkg|smbnetfs}}.
# pacman -S smbnetfs
+
  
2. Aggiungere la seguente linea al file {{Filename|/etc/fuse.conf}}:
+
2. Aggiungere la seguente linea al file {{ic|/etc/fuse.conf}}:
 
  user_allow_other
 
  user_allow_other
  
3. Caricare il modulo {{Codeline|fuse}}:
+
3. Caricare il modulo {{ic|fuse}}:
 
  # modprobe fuse
 
  # modprobe fuse
  
4. Avviare il [[Daemon (Italiano)|demone]] {{Codeline|smbnetfs}}:
+
4. Avviare il [[Daemon (Italiano)|demone]] {{ic|smbnetfs}}.
# rc.d start smbnetfs
+
  
Tutte le condivisioni nella rete saranno montate automaticamente in {{Filename|/mnt/smbnet}}.
+
Tutte le condivisioni nella rete saranno montate automaticamente in {{ic|/mnt/smbnet}}.
  
Apportare infine le seguenti modifiche al file {{Filename|/etc/rc.conf}} per montare le condivisioni durante l'avvio del sistema:
+
Modificare il file il file {{ic|/etc/rc.conf}} per montare le condivisioni durante l'avvio del sistema, aggiungendo il modulo {{ic|fuse}} all'array {{ic|MODULES}} ed il [[Daemon (Italiano)|demone]] {{ic|smbnetfs}} all'array {{ic|DAEMONS}}.
MODULES=(... '''fuse''' ...)
+
DAEMONS=(... '''smbnetfs''' ...)
+
  
Se le condivisioni necessitano di un utente ed una password per l'accesso, sarà necessario modificare il file {{Filename|/etc/smbnetfs/.smb/smbnetfs.conf}} decommentando la linea che inizia con "auth", e modificandola secondo le esigenze:
+
Se le condivisioni necessitano di un utente ed una password per l'accesso, sarà necessario modificare il file {{ic|/etc/smbnetfs/.smb/smbnetfs.conf}} de commentando la linea che inizia con "auth", e modificandola secondo le esigenze:
  
 
  auth "WORKGROUP/username" "password"
 
  auth "WORKGROUP/username" "password"
  
Può essere necessario la modificare i permessi sul file {{Filename|/etc/smbnetfs/.smb/smbnetfs.conf}}, e di tutti i file inclusi in esso, per far sì che il sevizio funzioni correttamente:
+
Può essere necessario la modificare i permessi sul file {{ic|/etc/smbnetfs/.smb/smbnetfs.conf}}, e di tutti i file inclusi in esso, per far sì che il sevizio funzioni correttamente:
  
 
  # chmod 600 /etc/smbnetfs/.smb/smbnetfs.conf
 
  # chmod 600 /etc/smbnetfs/.smb/smbnetfs.conf
  
 
=====fusesmb=====
 
=====fusesmb=====
{{Nota|1=Dato che {{Codeline|smbclient 3.2.x}} non funziona correttamente con {{Codeline|fusesmb}}, è preferibile effettuare il downgrade se necessario. Consultare il [http://bbs.archlinux.org/viewtopic.php?id=58434 topic sul forum] per maggiori informazioni.}}
+
{{Nota|1=Dato che {{ic|smbclient 3.2.x}} non funziona correttamente con {{ic|fusesmb}}, è preferibile effettuare il downgrade se necessario. Consultare il [https://bbs.archlinux.org/viewtopic.php?id=58434 topic sul forum] per maggiori informazioni.}}
  
1. Installare {{Package AUR|fusesmb}} da [[AUR (Italiano)|AUR]].
+
1. Installare {{AUR|fusesmb}} da [[AUR (Italiano)|AUR]].
  
 
2. Creare il punto di mount:
 
2. Creare il punto di mount:
 
  # mkdir /mnt/fusesmb
 
  # mkdir /mnt/fusesmb
  
3. caricare il modulo {{Codeline|fuse}}:
+
3. Caricare il modulo {{ic|fuse}}:
 
  # modprobe fuse
 
  # modprobe fuse
  
Line 181: Line 168:
 
  # fusesmb -o allow_other /mnt/fusesmb
 
  # fusesmb -o allow_other /mnt/fusesmb
  
Per montare automaticamente all'avvio, aggiungere il comando sopra nel file {{Filename|/etc/rc.local}} ed aggiungere il modulo {{Codeline|fuse}} in {{Filename|/etc/rc.conf}}:
+
Per effettuare il mount automaticamente all'avvio, aggiungere il comando precedente nel file {{ic|/etc/rc.local}} ed aggiungere il modulo {{ic|fuse}} nell'array {{ic|MODULES}} nel file {{ic|/etc/rc.conf}}.
MODULES=(... '''fuse''' ...)
+
  
 
=====Autofs=====
 
=====Autofs=====
Line 188: Line 174:
  
 
====Montare manualmente una condivisione====
 
====Montare manualmente una condivisione====
1. Usare {{Package Official|smbclient}} per esplorare le condivisioni dalla shell. Per ottenere l'elenco delle condivisioni pubbliche da un server:
+
1. Usare {{Pkg|smbclient}} per esplorare le condivisioni dalla shell. Per ottenere l'elenco delle condivisioni pubbliche da un server:
 
  $ smbclient -L <hostname> -U%
 
  $ smbclient -L <hostname> -U%
  
Line 194: Line 180:
 
  # mkdir /mnt/PUNTODIMOUNT
 
  # mkdir /mnt/PUNTODIMOUNT
  
3. Montare la condivisione usando {{Codeline|mount.cifs}}. Ricordare che non tutte le opzioni sono sempre necessarie o consigliate, ad esempio l'opzione {{Codeline|password}}:
+
3. Montare la condivisione usando {{ic|mount.cifs}}. Ricordare che non tutte le opzioni sono sempre necessarie o consigliate, ad esempio l'opzione {{ic|password}}:
 
  # mount -t cifs //''SERVER''/''CONDIVISIONE'' ''PUNTODIMOUNT'' -o user=''NOMEUTENTE'',password=''PASSWORD'',workgroup=''WORKGROUP'',ip=''IPSERVER''
 
  # mount -t cifs //''SERVER''/''CONDIVISIONE'' ''PUNTODIMOUNT'' -o user=''NOMEUTENTE'',password=''PASSWORD'',workgroup=''WORKGROUP'',ip=''IPSERVER''
  
;{{Codeline|SERVER}}: Il nome macchina Windows
+
;{{ic|SERVER}}: Il nome macchina Windows
;{{Codeline|CONDIVISIONE}}: Nome della condivisione
+
;{{ic|CONDIVISIONE}}: Nome della condivisione
;{{Codeline|PUNTODIMOUNT}}: La cartella locale dove sarà montata la condivisione
+
;{{ic|PUNTODIMOUNT}}: La cartella locale dove sarà montata la condivisione
;{{Codeline|-o [options]}}: Specifica la presenza di opzioni al comando {{Codeline|mount.cifs}}
+
;{{ic|-o [options]}}: Specifica la presenza di opzioni al comando {{ic|mount.cifs}}
:;{{Codeline|user}}: Il nome utente necessario per l'accesso alla condivisione
+
:;{{ic|user}}: Il nome utente necessario per l'accesso alla condivisione
:;{{Codeline|password}}: La password di accesso alla condivisione
+
:;{{ic|password}}: La password di accesso alla condivisione
:;{{Codeline|workgroup}}: Serve per specificare il gruppo di lavoro Windows
+
:;{{ic|workgroup}}: Serve per specificare il gruppo di lavoro Windows
:;{{Codeline|ip}}: L'indirizzo IP del server --Se il sistema non può identificare il server tramite il nome(DNS, WINS, il file hosts, etc.)
+
:;{{ic|ip}}: L'indirizzo IP del server --Se il sistema non può identificare il server tramite il nome(DNS, WINS, il file hosts, etc.)
  
{{Nota|Evitare di usare i delimitatori delle cartelle ('''/''') alla fine del percorso. Usando {{Filename|//SERVER/CONDIVISIONE'''/'''}} non funzionerà.}}
+
{{Nota|Evitare di usare i delimitatori delle cartelle ('''/''') alla fine del percorso. Usando {{ic|//SERVER/CONDIVISIONE'''/'''}} non funzionerà.}}
 +
Dato che CIFS rifiuta di effettuare il mount [http://jmatrix.net/dao/case/case.jsp?case=7F000001-1766806-11E30195CFB-2593 di condivisioni samba non protette], si deve utilizzare l'opzione {{ic|1=sec=none}}(ed il nome utente e la password dalla lista delle opzioni precedente dovranno essere rimosse).
 +
 
 +
Se il comando {{ic|mount}} non riesce a risolvere l'indirizzo del server, ma {{ic|smbclient}} può, aggiungere la voce {{ic|wins}} alla linea {{ic|hosts}} nel file {{ic|/etc/[[nsswitch.conf]]}} può aiutare. Il corrispondente driver {{ic|/lib/libnss_wins.so}} deve essere presente, esso è fornito dal pacchetto (del servizio) {{Pkg|samba}}.
  
 
4. Per smontare la condivisione usare il comando:
 
4. Per smontare la condivisione usare il comando:
 
  # umount /mnt/PUNTODIMOUNT
 
  # umount /mnt/PUNTODIMOUNT
  
=====Aggiungere una condivisione in {{Filename|fstab}}=====
+
=====Aggiungere una condivisione in fstab=====
Aggiungere la seguente linea al file {{Filename|/etc/[[fstab (Italiano)|fstab]]}} per un mount rapido:
+
Aggiungere la seguente linea al file {{ic|/etc/[[fstab (Italiano)|fstab]]}} per un mount rapido:
 
  //SERVER/CONDIVISIONE /mnt/PUNTODIMOUNT cifs noauto,noatime,username=NOMEUTENTE,password=PASSWORD,workgroup=WORKGROUP,ip=SERVERIP 0 0
 
  //SERVER/CONDIVISIONE /mnt/PUNTODIMOUNT cifs noauto,noatime,username=NOMEUTENTE,password=PASSWORD,workgroup=WORKGROUP,ip=SERVERIP 0 0
  
L'opzione {{Codeline|noauto}} impedisce il mount automatico all'avvio mentre {{Codeline|noatime}} aumenta le prestazioni non aggiornando i tempi di accesso ai file.
+
L'opzione {{ic|noauto}} impedisce il mount automatico all'avvio mentre {{ic|noatime}} aumenta le prestazioni non aggiornando i tempi di accesso ai file.
  
Dopo aver aggiunto la precedente linea, la sintassi del comando {{Codeline|mount}} diventa più semplice:
+
Dopo aver aggiunto la precedente linea, la sintassi del comando {{ic|mount}} diventa più semplice:
 
  # mount /mnt/PUNTODIMOUNT
 
  # mount /mnt/PUNTODIMOUNT
 +
 +
Un'altra opzione, per non avere le password in chiaro, è quella di usare l'opzione {{ic|credentials}}:
 +
//SERVER/CONDIVISIONE /percorso/di/MOUNT cifs noauto,noatime,credentials=/percorso/per/credenzialismb 0 0
 +
 +
Il file delle credenziali dovrebbe contenere il seguente testo:
 +
username=USERNAME
 +
password=PASSWORD
 +
 +
Per maggiore sicurezza è possibile assegnare i permessi tramite il comando {{ic|chmod 700}} a questo file in modo da impedirne la lettura e la scrittura da parte di altri utenti.
  
Se si aggiunge una condivisione nel file {{Filename|fstab}}, il demone {{Codeline|netfs}} dovrà essere aggiunto nell'array DAEMONS in [[rc.conf (Italiano)|rc.conf]], dopo [[Configuring Network (Italiano)|network]]. Il demone {{Codeline|netfs}} si occuperà di montare le condivisioni durante la fase di avvio e, cosa più importante, di smontarle durante la fase di arresto del sistema. Anche se viene utilizzata l'opzione {{Codeline|noauto}} in {{Filename|fsftab}}, il demone {{Codeline|netfs}} dovrebbe essere usato. Senza di esso se una condivisione fosse montata, durante la fase di spengimento porterebbe il demone {{Codeline|network}} ad attendere il time out della connessione, aumentado quindi la durata di arresto del sistema.
+
Se si aggiunge una condivisione nel file {{ic|fstab}}, il demone {{ic|netfs}} dovrà essere aggiunto nell'array {{ic|DAEMONS}} in [[rc.conf (Italiano)|rc.conf]], dopo [[Configuring Network (Italiano)|network]]. Il demone {{ic|netfs}} si occuperà di montare le condivisioni durante la fase di avvio e, cosa più importante, di smontarle durante la fase di arresto del sistema. Anche se viene utilizzata l'opzione {{ic|noauto}} in {{ic|fsftab}}, il demone {{ic|netfs}} dovrebbe essere usato. Senza di esso se una condivisione fosse montata, durante la fase di spegnimento porterebbe il demone {{ic|network}} ad attendere il time out della connessione, aumentando quindi la durata di arresto del sistema.
  
 
=====Permettere agli utenti di montare le condivisioni=====
 
=====Permettere agli utenti di montare le condivisioni=====
Prima abilitare l'accesso al comando mount, il file {{Filename|fstab}} dovrà essere modificato. Aggiungere l'opzione {{Codeline|users}} nella voce in {{Filename|/etc/fstab}}:
+
Prima abilitare l'accesso al comando mount, il file {{ic|fstab}} dovrà essere modificato. Aggiungere l'opzione {{ic|users}} nella voce in {{ic|/etc/fstab}}:
 
  //SERVER/CONDIVISIONE /percorso/del/PUNTODIMOUNT cifs '''users''',noauto,noatime,username=NOMEUTENTE,password=PASSWORD,workgroup=WORKGROUP,ip=SERVERIP 0 0
 
  //SERVER/CONDIVISIONE /percorso/del/PUNTODIMOUNT cifs '''users''',noauto,noatime,username=NOMEUTENTE,password=PASSWORD,workgroup=WORKGROUP,ip=SERVERIP 0 0
  
{{Nota|Questa è l'opzione {{Codeline|user'''s'''}}(al plurale). Per altri tipi di filesystem, questa opzione è ''user'', senza la "'''s'''".}}
+
{{Nota|Questa è l'opzione {{ic|user'''s'''}}(al plurale). Per altri tipi di filesystem, questa opzione è ''user'', senza la "'''s'''".}}
  
 
Questo permetterà agli utenti di montatre la condivisione se il suo punto di mount si trova in una cartella ''controllabile'' dall'utente; ad esempio la propria cartella home. Per montare le condivisioni Samba in punti di mount che non si posseggono, utilizzare [[#smbnetfs]] oppure elevare i privilegi tramite [[sudo (Italiano)|sudo]].
 
Questo permetterà agli utenti di montatre la condivisione se il suo punto di mount si trova in una cartella ''controllabile'' dall'utente; ad esempio la propria cartella home. Per montare le condivisioni Samba in punti di mount che non si posseggono, utilizzare [[#smbnetfs]] oppure elevare i privilegi tramite [[sudo (Italiano)|sudo]].
  
 
== Tips and tricks ==
 
== Tips and tricks ==
 
+
=== Condividere file sulla propria rete senza la richiesta di utente e password ===
=== Condividre file sulla propria rete senza la richiesta di utente e password ===
+
 
==== Opzione 1 - Forzare le connessioni guest ====
 
==== Opzione 1 - Forzare le connessioni guest ====
Modificare il file {{Filename|/etc/samba/smb.conf}} cambiando la seguente linea:
+
Modificare il file {{ic|/etc/samba/smb.conf}} cambiando la seguente linea:
  
 
  security = user
 
  security = user
Line 243: Line 240:
  
 
==== Opzione 2 - Permettere le connessioni guest ed Utente ====
 
==== Opzione 2 - Permettere le connessioni guest ed Utente ====
 
+
Modificare il file {{ic|/etc/samba/smb.conf}} aggiungendo la seguente linea:
Modificare il file {{Filename|/etc/samba/smb.conf}} aggiungendo la seguente linea:
+
  
 
  map to guest = Bad User
 
  map to guest = Bad User
Line 261: Line 257:
 
  bind interfaces only = true
 
  bind interfaces only = true
  
(cambiando {{Codeline|eth0}} con il nome dell'interfaccia connessa alla rete con la quale si vuole effettuare la condivisione)
+
(cambiando {{ic|eth0}} con il nome dell'interfaccia connessa alla rete con la quale si vuole effettuare la condivisione)
  
Se si vuole è possibile modificare l'account che accede alle condivisioni, cambiando la seguetne linea:
+
Se si vuole è possibile modificare l'account che accede alle condivisioni, cambiando la seguente linea:
  
 
  ;  guest account = nobody
 
  ;  guest account = nobody
  
L'ultimo passo consiste nel creare le condivisioni(per garantire il permesso in scrittura usare l'opzione {{Codeline|writable <nowiki>=</nowiki> yes}}):
+
L'ultimo passo consiste nel creare le condivisioni(per garantire il permesso in scrittura usare l'opzione {{ic|writable <nowiki>=</nowiki> yes}}):
  
 
  [Public Share]
 
  [Public Share]
Line 277: Line 273:
  
 
=== Esempio di configurazione ===
 
=== Esempio di configurazione ===
 
 
Questo è un esempio di configurazione funzionante:
 
Questo è un esempio di configurazione funzionante:
 
  [global]
 
  [global]
Line 284: Line 279:
 
  netbios name = PC_NAME
 
  netbios name = PC_NAME
 
  security = share
 
  security = share
  ; la seguente linea è importatne! In caso di problemi di permessi
+
  ; la seguente linea è importante! In caso di problemi di permessi
 
  ; assicurarsi che l'utente di seguito sia il solito che possiede
 
  ; assicurarsi che l'utente di seguito sia il solito che possiede
 
  ; la cartella che si condivide
 
  ; la cartella che si condivide
Line 300: Line 295:
  
 
==== Global Parameters ====
 
==== Global Parameters ====
La prima sezione del file {{Filename|smb.conf}} serve a configurare i parametri globali, la gran parte delle modifiche sarà effettuta qua.
+
La prima sezione del file {{ic|smb.conf}} serve a configurare i parametri globali, la gran parte delle modifiche sarà effettuata qua.
 
Segue un esempio di sezione Global Parameters:
 
Segue un esempio di sezione Global Parameters:
  
Line 308: Line 303:
 
  encrypt passwords = yes
 
  encrypt passwords = yes
  
Il parametro ''workgroup'' imposta il nome del gruppo di lavoro al quale volete che la macchina appartenga. Il parametro ''encrypt passwords'' deve essere mantenuto a ''yes'' a meno che in rete non siano presenti macchine Windows 95 o Windows 98, questi due sistemi infatti non supportano le password criptate. Infine il parametro "netbios name" è il nome che desiderate asseganre alla macchina su cui state lavorando all'interno della rete.
+
Il parametro ''workgroup'' imposta il nome del gruppo di lavoro al quale volete che la macchina appartenga. Il parametro ''encrypt passwords'' deve essere mantenuto a ''yes'' a meno che in rete non siano presenti macchine Windows 95 o Windows 98, questi due sistemi infatti non supportano le password criptate. Infine il parametro "netbios name" è il nome che desiderate assegnare alla macchina su cui state lavorando all'interno della rete.
  
 
==== Condivisioni ====
 
==== Condivisioni ====
 
 
A seguito si trova la configurazione delle condivisioni. La condivisione più semplice possibile sarà quella in cui un utente può accedere e scrivere nella propria home direcotry.
 
A seguito si trova la configurazione delle condivisioni. La condivisione più semplice possibile sarà quella in cui un utente può accedere e scrivere nella propria home direcotry.
Per fare ciò nel file smb.conf saranno presnti le righe:
+
Per fare ciò nel file smb.conf saranno presenti le righe:
  
 
  [homes]
 
  [homes]
Line 326: Line 320:
 
  write list = @nome-gruppo
 
  write list = @nome-gruppo
  
Se vogliamo che gli utenti windows una volta loggati vedano una direcotry home "pulita" (ovvero non i file nascosti, es: {{Filename|~/.bashrc}}), allora la sezione homes potrebbe essre:
+
Se vogliamo che gli utenti windows una volta loggati vedano una direcotry home "pulita" (ovvero non i file nascosti, es: {{ic|~/.bashrc}}), allora la sezione homes potrebbe essere:
  
 
  [homes]
 
  [homes]
Line 333: Line 327:
 
  read only = no
 
  read only = no
  
In questo caso però assicurasi di aggiungere la cartella {{Filename|smb}} alle home directory degli utenti. Inoltre aggiungere {{Filename|smb}} alla direcotry {{Filename|/etc/skel}}, in modo che tutti i nuovi utenti abbiano {{Filename|~/smb}} aggiunto in automatico alla creazione:
+
In questo caso però assicurasi di aggiungere la cartella {{ic|smb}} alle home directory degli utenti. Inoltre aggiungere {{ic|smb}} alla direcotry {{ic|/etc/skel}}, in modo che tutti i nuovi utenti abbiano {{ic|~/smb}} aggiunto in automatico alla creazione:
  
 
  # mkdir /etc/skel/smb
 
  # mkdir /etc/skel/smb
Line 345: Line 339:
 
  valid users = Bryan, Michael, David, Jane
 
  valid users = Bryan, Michael, David, Jane
  
Il parametro {{Codeline|path}} indica la posizione della direcotry che si vuole condividere. Il parametro {{Codeline|valid users}} comunica a samba quali utenti hanno diritto di accedere a questa condivisione.
+
Il parametro {{ic|path}} indica la posizione della direcotry che si vuole condividere. Il parametro {{ic|valid users}} comunica a samba quali utenti hanno diritto di accedere a questa condivisione.
 
Una volta aggiunte tutte le condivisioni necessarie, salvare il file ed uscire dall'editor.
 
Una volta aggiunte tutte le condivisioni necessarie, salvare il file ed uscire dall'editor.
  
Line 351: Line 345:
  
 
=== Aggiungere condivisioni usando l'interfaccia di KDE4 ===
 
=== Aggiungere condivisioni usando l'interfaccia di KDE4 ===
Come configurare le condivisioni in KDE4. La configurazione più semplice usa le condivisioni delle singole home degli uteni con accesso in sola lettura. Configurazioni più avanzate permettono svariate possibilità senza limitazioni alle condivisioni, ma richiedono {{Codeline|su}} oppure {{Codeline|sudo}} per ottenere i privilegi di root.
+
Come configurare le condivisioni in KDE4. La configurazione più semplice usa le condivisioni delle singole home degli utenti con accesso in sola lettura. Configurazioni più avanzate permettono svariate possibilità senza limitazioni alle condivisioni, ma richiedono {{ic|su}} oppure {{ic|sudo}} per ottenere i privilegi di root.
 
* Sola lettura, condivisione semplice: [[Samba/Simple file sharing with KDE4]]
 
* Sola lettura, condivisione semplice: [[Samba/Simple file sharing with KDE4]]
 
* Controllo completo: [[Samba/Advanced file sharing with KDE4]]
 
* Controllo completo: [[Samba/Advanced file sharing with KDE4]]
  
 
=== Individuare le condivisioni di rete ===
 
=== Individuare le condivisioni di rete ===
 +
Se non si conosce la struttura della rete locale, e gli strumenti di automazione come [[#smbnetfs]] non sono disponibili, i seguenti metodi permetteranno di individuare le condivisioni Samba.
  
Se non si conosce la struttura della rete locale, e gli strumenti di automazione come [[#smbnetfs]] non sono disponibili, i seguenti metodi permetteranno di individiuare le condivisioni Samba.
+
1. Per prima cosa, [[Pacman (Italiano)|installare]] {{Pkg|nmap}} e {{Pkg|smbclient}}.
  
1. Primo, installare {{Package Official|nmap}} e {{Package Official|smbclient}} usando [[pacman (Italiano)|pacman]]:
+
2. {{ic|nmap}} controlla quali porte sono aperte:
# pacman -S nmap smbclient
+
 
+
2. {{Codeline|nmap}} controlla quali porte sono aperte:
+
 
  # nmap -sT 192.168.1.*
 
  # nmap -sT 192.168.1.*
  
 
In questo esempio verrà scansionata l'intera classe di indirizzi 192.168.1.*. Ecco il risultato:
 
In questo esempio verrà scansionata l'intera classe di indirizzi 192.168.1.*. Ecco il risultato:
{{Command
+
{{hc|$ nmap -sT 192.168.1.*|2=<nowiki>Starting nmap 3.78 ( http://www.insecure.org/nmap/ ) at 2005-02-15 11:45 PHT
|name=nmap -sT 192.168.1.*
+
|output=Starting nmap 3.78 ( http://www.insecure.org/nmap/ ) at 2005-02-15 11:45 PHT
+
 
Interesting ports on 192.168.1.1:
 
Interesting ports on 192.168.1.1:
 
(The 1661 ports scanned but not shown below are in state: closed)
 
(The 1661 ports scanned but not shown below are in state: closed)
Line 381: Line 371:
  
 
Nmap run completed -- 256 IP addresses (2 hosts up) scanned in 7.255 seconds
 
Nmap run completed -- 256 IP addresses (2 hosts up) scanned in 7.255 seconds
}}
+
</nowiki>}}
  
 
Il primo indirizzo(192.168.1.1) è un altro pc, mentre il secondo è il computer da cui è stata lanciata la scansione.
 
Il primo indirizzo(192.168.1.1) è un altro pc, mentre il secondo è il computer da cui è stata lanciata la scansione.
  
3. Adesso verso il sistema che risulta avere la porta 139 aperta, sarà usato {{Codeline|nmblookup}} per ottenere i nomi delle condivisioni(NetBIOS names):  
+
3. Adesso verso il sistema che risulta avere la porta 139 aperta, sarà usato {{ic|nmblookup}} per ottenere i nomi delle condivisioni(NetBIOS names):  
{{Command
+
{{hc|$ nmblookup -A 192.168.1.1|2=<nowiki>Looking up status of 192.168.1.1
|name=nmblookup -A 192.168.1.1
+
|output=Looking up status of 192.168.1.1
+
 
         PUTER          <00> -        B <ACTIVE>
 
         PUTER          <00> -        B <ACTIVE>
 
         HOMENET        <00> - <GROUP> B <ACTIVE>
 
         HOMENET        <00> - <GROUP> B <ACTIVE>
Line 397: Line 385:
 
         HOMENET        <1d> -        B <ACTIVE>
 
         HOMENET        <1d> -        B <ACTIVE>
 
         MSBROWSE        <01> - <GROUP> B <ACTIVE>
 
         MSBROWSE        <01> - <GROUP> B <ACTIVE>
}}
+
</nowiki>}}
  
 
Senza preoccuparsi dei vari risultati, cercare il valore '''<20>''', che indica la macchina con la condivisione file attiva.
 
Senza preoccuparsi dei vari risultati, cercare il valore '''<20>''', che indica la macchina con la condivisione file attiva.
  
4. Usare {{Codeline|smbclient}} per elencare quali servizi sono condivisi da ''PUTER''. Nel caso fosse richiesta una password, premendo invio verrà comunque mostrata la lista:
+
4. Usare {{ic|smbclient}} per elencare quali servizi sono condivisi da ''PUTER''. Nel caso fosse richiesta una password, premendo invio verrà comunque mostrata la lista:
{{Command
+
{{hc|$ smbclient -L \\PUTER|2=<nowiki>
|name=smbclient -L \\PUTER
+
|output=<nowiki>
+
 
Sharename      Type      Comment
 
Sharename      Type      Comment
 
---------      ----      -------
 
---------      ----      -------
Line 425: Line 411:
  
 
=== Controllare da remoto i computer Windows ===
 
=== Controllare da remoto i computer Windows ===
 
 
Samba offre una serie di strumenti per comunicare con Windows.
 
Samba offre una serie di strumenti per comunicare con Windows.
 
Questi possono essere utili nel caso no si possa prendere il controllo di questi tramite il desktop remoto, ecco alcuni esempi.
 
Questi possono essere utili nel caso no si possa prendere il controllo di questi tramite il desktop remoto, ecco alcuni esempi.
Line 433: Line 418:
 
  $ net rpc shutdown -C "commento" -I INDIRIZZOIP -U NOMEUTENTE%PASSWORD
 
  $ net rpc shutdown -C "commento" -I INDIRIZZOIP -U NOMEUTENTE%PASSWORD
  
Se si preferisce forzare lo spegnimento, sostituire l'opzione {{Codeline|-C "commento"}} con {{Codeline|-f}}. In caso si voglia eseguire un riavvio aggiungere {{Codeline|-r}}, seguito da {{Codeline|-C "commento"}} oppure {{Codeline|-f}}.
+
Se si preferisce forzare lo spegnimento, sostituire l'opzione {{ic|-C "commento"}} con {{ic|-f}}. In caso si voglia eseguire un riavvio aggiungere {{ic|-r}}, seguito da {{ic|-C "commento"}} oppure {{ic|-f}}.
  
 
*Fermare ed avviare servizi:
 
*Fermare ed avviare servizi:
Line 439: Line 424:
 
  $ net rpc service stop NOMESERVIZIO -I INDIRIZZOIP -U NOMEUTENTE%PASSWORD
 
  $ net rpc service stop NOMESERVIZIO -I INDIRIZZOIP -U NOMEUTENTE%PASSWORD
  
*Per vedere tutti i possibili comandi {{Codeline|net rpc}}:
+
*Per vedere tutti i possibili comandi {{ic|net rpc}}:
  
 
  $ net rpc
 
  $ net rpc
  
== Risoluzione dei problemi ==
+
=== Bloccare determinate estenzioni di file extensions sulle condivisioni samba ===
=== Problemi con gli accessi da Windows a condivisioni protette da password ===
+
Samba permette come opzione di bloccare i file corrispondenti ad un determinato pattern, come un estensione. Questa opzione può essere usata per impedire la diffusione di virus oppure dissuadere gli utenti dallo spercare spazio con determinati file:
 +
 
 +
Veto files = /*.exe/*.com/*.dll/*.bat/*.vbs/*.tmp/*.mp3/*.avi/*.mp4/*.wmv/*.wma/
 +
 
 +
== Risoluzione di problemi ==
 +
=== Windows 7 problemi di connettività - mount error(12): cannot allocate memory ===
 +
Un noto bug di Windows 7 che causa l'errore "mount error(12): cannot allocate memory" su di una condivisione cifs perfettamente configrata dal lato Linux, può essere risolto impostando alcune chiavi di regitro sul pc Windows come di seguito:
 +
 
 +
*HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache (impostata a 1)
 +
 
 +
*HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size (impostata a 3)
 +
 
 +
Riavviare il pc Windows per applicare le modifiche.
 +
 
 +
{{Nota| Cercando su Google si otterranno diversi tweak сhe consigliano agli utenti di aggiungere una chiave per modificare la dimensione "IRPStackSize". Questo non è corretto per sistemare questo problema su Windows 7. Non lo fate.}}
  
In caso di problemi di accesso da Windows alle condivisioni protette da password, provare ad aggiungere queste righe al file {{Filename|/etc/samba/smb.conf}}:[http://blogs.computerworld.com/networking_nightmare_ii_adding_linux]
+
[http://alan.lamielle.net/2009/09/03/windows-7-nonpaged-pool-srv-error-2017 Collegamento] all'articolo originale.
 +
 
 +
=== Problemi con gli accessi da Windows a condivisioni protette da password ===
 +
In caso di problemi di accesso da Windows alle condivisioni protette da password, provare ad aggiungere queste righe al file {{ic|/etc/samba/smb.conf}}:[http://blogs.computerworld.com/networking_nightmare_ii_adding_linux]
  
 
Notare che si dovrà modificare il file smb.conf '''locale''' non quello del server
 
Notare che si dovrà modificare il file smb.conf '''locale''' non quello del server
Line 456: Line 458:
  
 
=== Lentezza nell'apparsa della finestra per l'accesso ===
 
=== Lentezza nell'apparsa della finestra per l'accesso ===
 
+
Si sono verificati ritardi anche di circa 30 secondi, dalla richiesta di connessione all'apparsa della finestra di accesso, sia utilizzando Windows XP che Windows 7. E analizzando il log {{ic|error.log}} compare:
Si sono verificati ritardi anche di circa 30 secondi, dalla richiesta di connessione all'apparsa della finestra di accesso, sia utilizzando Windows XP che Windows 7. E analizzando il log {{Filename|error.log}} compare:
+
  
 
  [2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
 
  [2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
 
  Unable to connect to CUPS server localhost:631 - Interrupted system call
 
  Unable to connect to CUPS server localhost:631 - Interrupted system call
  
Dato che il problema si verificava anche se sul server non erano connesse stampanti, la soluzione consiste nell'aggiungere queste righe nella sezione global del file {{Filename|/etc/samba/smb.conf}}
+
Dato che il problema si verificava anche se sul server non erano connesse stampanti, la soluzione consiste nell'aggiungere queste righe nella sezione global del file {{ic|/etc/samba/smb.conf}}
  
 
  load printers = no
 
  load printers = no
Line 469: Line 470:
 
  printcap name = /dev/null
 
  printcap name = /dev/null
  
  Non c'è la certezza che tutte queste righe siano effettivamente necessarie, ma in questo modo fuziona.
+
  Non c'è la certezza che tutte queste righe siano effettivamente necessarie, ma in questo modo funziona.
  
 
=== Cambiamenti in Samba versione 3.4.0 ===
 
=== Cambiamenti in Samba versione 3.4.0 ===
 
 
Tra le [http://www.samba.org/samba/history/samba-3.4.0.html maggiori innovazioni in Samba 3.4.0]:
 
Tra le [http://www.samba.org/samba/history/samba-3.4.0.html maggiori innovazioni in Samba 3.4.0]:
  
 
Il programma di gestione delle password di default è stato cambiato in favore di 'tdbsam'! Di conseguenza tutte le configurazioni esistenti, che invece utilizzano 'smbpasswd', senza una dichiarazione esplicita risultano non funzionanti.
 
Il programma di gestione delle password di default è stato cambiato in favore di 'tdbsam'! Di conseguenza tutte le configurazioni esistenti, che invece utilizzano 'smbpasswd', senza una dichiarazione esplicita risultano non funzionanti.
  
Se si vuole utilizzare 'smbpasswd' modificare il file {{Filename|/etc/samba/smb.conf}}:
+
Se si vuole utilizzare 'smbpasswd' modificare il file {{ic|/etc/samba/smb.conf}}:
  
 
  passdb backend = smbpasswd
 
  passdb backend = smbpasswd
  
oppure convertire a {{Codeline|tdbsam}} gli accessi:
+
oppure convertire a {{ic|tdbsam}} gli accessi:
  
 
  sudo pdbedit -i smbpasswd -e tdbsam
 
  sudo pdbedit -i smbpasswd -e tdbsam
  
 
=== Error: Value too large for defined data type ===
 
=== Error: Value too large for defined data type ===
 
 
Con alcune applicazioni si può ottenere questo errore provando ad aprire un file da una condivisione smbfs/cifs:
 
Con alcune applicazioni si può ottenere questo errore provando ad aprire un file da una condivisione smbfs/cifs:
  
 
   Value too large for defined data type
 
   Value too large for defined data type
  
La soluzione[https://bugs.launchpad.net/ubuntu/+bug/479266/comments/5], è aggiungere questa opzione al mount delle condivisioni smbfs/cifs(all'interno del file {{Filename|/etc/fstab}} ad esempio):
+
La soluzione[https://bugs.launchpad.net/ubuntu/+bug/479266/comments/5], è aggiungere questa opzione al mount delle condivisioni smbfs/cifs(all'interno del file {{ic|/etc/fstab}} ad esempio):
  
 
   ,nounix,noserverino
 
   ,nounix,noserverino
Line 498: Line 497:
  
 
=== Devo riavviare Samba per rendere le condivisioni visibili agli altri pc ===
 
=== Devo riavviare Samba per rendere le condivisioni visibili agli altri pc ===
 
 
Se dopo l'avvio del computer, le condivisioni samba configurate non sono accessibili da nessun client, controllare:
 
Se dopo l'avvio del computer, le condivisioni samba configurate non sono accessibili da nessun client, controllare:
* di non aver dimenticato di inserire il demone {{Codeline|samba}} all'interno dell'array {{Codeline|DAEMONS}} nel file {{Filename|/etc/rc.conf}} (dopo il demone {{Codeline|network}} o qualsiasi sia il demone di gestione della rete es.{{Package Official|wicd}},{{Package Official|networkmanager}})
+
* di non aver dimenticato di inserire il demone {{ic|samba}} all'interno dell'array {{ic|DAEMONS}} nel file {{ic|/etc/rc.conf}} (dopo il demone {{ic|network}} o qualsiasi sia il demone di gestione della rete es.{{Pkg|wicd}},{{Pkg|networkmanager}})
* che il demone ''network'' non sia avviato in background (quindi non deve essere preceduto dal simbolo {{Codeline|@}} all'interno del suddetto array). Rimuovere il simbolo '{{Codeline|@}}' può risolvere il problema. Riavviare e controllare.
+
* che il demone ''network'' non sia avviato in background (quindi non deve essere preceduto dal simbolo {{ic|@}} all'interno del suddetto array). Rimuovere il simbolo '{{ic|@}}' può risolvere il problema. Riavviare e controllare.
  
Si presume che: quando samba viene avviato, probabilmente il demone {{Codeline|network}} non ha ancora finito di avviarsi correttamente, quindi il server samba non identifica l'interfaccia di rete sulla quale stare in ascolto, e quindi fallisce la sua inizializzazione.
+
Si presume che: quando samba viene avviato, probabilmente il demone {{ic|network}} non ha ancora finito di avviarsi correttamente, quindi il server samba non identifica l'interfaccia di rete sulla quale stare in ascolto, e quindi fallisce la sua inizializzazione.
  
 
== Risorse ==
 
== Risorse ==
 
*[http://www.samba.org/ Sito ufficiale di Samba (in inglese)]
 
*[http://www.samba.org/ Sito ufficiale di Samba (in inglese)]
 
*[http://www.samba.org/samba/docs/SambaIntro.html Samba: Introduzione (in inglese)]
 
*[http://www.samba.org/samba/docs/SambaIntro.html Samba: Introduzione (in inglese)]

Revision as of 15:40, 4 December 2012

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end Samba è una re implementazione del protocollo di rete SMB/CIFS, serve per facilitare la condivisione di file e stampanti tra sistemi Linux e Windows, come alternativa ad NFS. Samba è facilmente configurabile e le opzioni sono molto chiare. In ogni caso, gli utenti meno esperti potrebbero incontrare problemi per la sua complessità e per i meccanismi non intuitivi. Si consiglia quindi di attenersi alle seguenti indicazioni.

Installazione

Installare smbclient per l'installazione del solo client è sufficiente per quei computer che non dovranno condividere file, ma solo accedervi.

Per poter condividere delle cartelle, installare il pacchetto server samba (che include anche smbclient come sua dipendenza).

Configurazione

Configrazione base

Il file /etc/samba/smb.conf deve essere creato prima di avviare il demone. Una volta creato, gli utenti possono optare per una interfaccia di configurazione avanzata come SWAT, invece di editare il file manualmente.

Da root, copiare il file di configurazione di default in /etc/samba/smb.conf:

# cp /etc/samba/smb.conf.default /etc/samba/smb.conf

Aprire il file smb.conf e modificarlo secondo le necessità. La configurazione di default prevede la condivisione della cartella home di ogni utente. Crea inoltre una condivisione per le stampanti.

Maggiori informazioni riguardo alle opzioni disponibili possono essere trovate eseguendo il comando:

$ man smb.conf

Per avviare automaticamente samba all'avvio, aggiungerlo all'array DAEMONS in /etc/rc.conf.

Opzioni della shell

Aggiungere gli utenti

Per accedere ad una condivisione Samba, sarà necessario aggiungere un utente samba.

Per Samba a partire dalla versione 3.4.0 e successive:

# pdbedit -a -u <user>

Per le precedenti versioni di Samba:

# smbpasswd -a <user>

Il database delle password smbpasswd può anche essere convertito al nuovo formato.

L'utente dovrà avere già un account di sistema sul server. Se l'utente non esiste si otterrà un errore:

Failed to modify password entry for user "<user>"

Per aggiungere un nuovo utente di sistema Linux si può usare adduser. Questo articolo non spiega come aggiungere utenti su sistemi Windows.

Nota: smbpasswd non è più il metodo di default per le autenticazioni Samba a partire da Samba versione 3.4.0

Opzioni web

SWAT: Samba web administration tool

SWAT è una comodità per Samba. Il programma principale si chiama swat e viene avviato attraverso il demone xinetd (ovvero eXtended InterNET Daemon).

Ci sono diverse opinioni riguardo l'effettiva utilità di SWAT. Non importa quanto impegno si metta per produrre un tool di configurazione perfetto, rimarrà sempre una questione soggettiva ritenerlo utile. SWAT è un tool che attraverso un interfaccia Web, permette di configurare Samba. Sarà possibile effettuare una configurazione guidata per velocizzare e semplificare la configurazione, dispone dell'aiuto contestuale per ogni parametro del file smb.conf, permette inoltre di monitorare il corrente stato delle connessioni, ed anche di gestire le password di rete MS Windows [1].

Nota: In caso di problemi con SWAT, si può usare il più ampio tool di configurazione Webmin, e semplicemente caricare il relativo modulo SWAT.
Attenzione: Prima di usare SWAT. SWAT sostituirà se esiste il file smb.conf con un file più ottimizzato contenente i soli valori non di default e privo di commenti(anche di quelli inseriti dall'utente) .

Per usare SWAT, si dovrà prima installare il pacchetto xinetd.

Modificare con un editor di testo il file /etc/xinetd.d/swat. Per abilitare SWAT, cambiare la linea disable = yes in disable = no.

service swat
{
        type                    = UNLISTED
        protocol                = tcp
        port                    = 901
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/swat
        log_on_success          += HOST DURATION
        log_on_failure          += HOST
        disable                 = no
}

In alternativa è possibile aggiungere il servizio swat e la relativa porta al file /etc/services ed omettere le prime 3 righe della configurazione.

Successivamente avviare il demone xinetd.

L'interfaccia web è raggiungibile dalla porta di default, 901,

http://localhost:901/

Accedere alle condivisioni

Le risorse condivise dagli altri computer sulla rete sono accessibili e posso essere montate tramite interfacce grafiche(GUI) oppure attraverso la linea di comando(CLI). L’uso dell’interfaccia grafica è meno diffusa. Solo alcuni Desktop Environments dispongono di apposite utility per accedere alle risorse condivise. Comunque la maggior parte non ne dispone. Infatti, i più leggeri DE e Window Manager non dispongono di metodi grafici nativi.

Ci sono due fasi nell’accesso alle condivisioni. La prima è il meccanismo di basso livello del file system, e la seconda è l’interfaccia grafica che consente all’utente di montare le risorse condivise. Alcuni Desktop Environments hanno la prima parte integrata in essi.

Se si usa KDE, si ha la possibilità di vedere le condivisioni Samba. Non sarà quindi necessario installare pacchetti addizionali (comunque per avere un'interfaccia per la configurazione all'interno della schermata "Impostazioni di Sistema" sarà necessario installare il pacchetto kdenetwork-filesharing dal repository [extra]. Un'alternativa è SMB4K.). Se invece, si vuole accedere alle condivisioni da GNOME oppure dalla shell, sarà necessario installare dei pacchetti aggiuntivi.

Accedere alle condivisioni Samba da GNOME/Xfce4

Per poter accedere alle condivisioni Samba da Nautilus sarà necessario installare i pacchetti gvfs-smb e gnome-vfs

Per potervi accedere usando thunar in Xfce4 sarà necessario installare solamente gvfs-smb

Dalla finestra di Nautilus/Thunar, premere Template:Keypress+Template:Keypress oppure andare sul menù "Vai" e selezionare "Posizione..." -- entrambe le azioni porteranno il cursore nella barra del percorso. Digitare:

smb://nome_server/condivisione
Nota: Se non è stato inserito il nome server nel file /etc/hosts, si dovrà inserire l'indirizzo IP del server invece del nome.

Un altro programma per GNOME è Gnomba.

Se si utilizza iptables sul proprio sistema, sarà necessario aver caricato il modulo nf_conntrack_netbios_ns

modprobe nf_conntrack_netbios_ns

Accedere alle condivisioni da altri ambienti grafici

Ci sono diversi programmi utili, ma sarà necessario compilarsi il pacchetto per installarli. Ciò può essere fatto tramite gli strumenti di pacchettizzazione di Arch. Un vantaggio di questi programmi è che non necessitano di particolari ambienti per essere supportati, e quindi non hanno molte dipendenze.

LinNeighborhood è non è legato a nessun DE o WM. Può essere visto come un semplice generico browser di rete con interfaccia grafica, che permette il mount delle condivisioni. Non molto curato graficamente, ma efficiente.

Altri possibili programmi includono pyneighborhood e RUmba, inoltre anche il plugin xffm-samba per Xffm.

Accedere ad una condivisione Samba tramite shell

Si può accedere alle condivisioni montandole automaticamente oppure manualmente.

Mount automatico

Ci sono diverse alternative per un accesso semplice alle condivisioni.

smbnetfs

1. Installare smbnetfs.

2. Aggiungere la seguente linea al file /etc/fuse.conf:

user_allow_other

3. Caricare il modulo fuse:

# modprobe fuse

4. Avviare il demone smbnetfs.

Tutte le condivisioni nella rete saranno montate automaticamente in /mnt/smbnet.

Modificare il file il file /etc/rc.conf per montare le condivisioni durante l'avvio del sistema, aggiungendo il modulo fuse all'array MODULES ed il demone smbnetfs all'array DAEMONS.

Se le condivisioni necessitano di un utente ed una password per l'accesso, sarà necessario modificare il file /etc/smbnetfs/.smb/smbnetfs.conf de commentando la linea che inizia con "auth", e modificandola secondo le esigenze:

auth			"WORKGROUP/username" "password"

Può essere necessario la modificare i permessi sul file /etc/smbnetfs/.smb/smbnetfs.conf, e di tutti i file inclusi in esso, per far sì che il sevizio funzioni correttamente:

# chmod 600 /etc/smbnetfs/.smb/smbnetfs.conf
fusesmb
Nota: Dato che smbclient 3.2.x non funziona correttamente con fusesmb, è preferibile effettuare il downgrade se necessario. Consultare il topic sul forum per maggiori informazioni.

1. Installare fusesmbAUR da AUR.

2. Creare il punto di mount:

# mkdir /mnt/fusesmb

3. Caricare il modulo fuse:

# modprobe fuse

4. Montare la condivisione:

# fusesmb -o allow_other /mnt/fusesmb

Per effettuare il mount automaticamente all'avvio, aggiungere il comando precedente nel file /etc/rc.local ed aggiungere il modulo fuse nell'array MODULES nel file /etc/rc.conf.

Autofs

Consultare la pagina relativa ad Autofs per maggiori informazioni riguardo al mount automatico implementato nel kernel Linux.

Montare manualmente una condivisione

1. Usare smbclient per esplorare le condivisioni dalla shell. Per ottenere l'elenco delle condivisioni pubbliche da un server:

$ smbclient -L <hostname> -U%

2. Creare il punto di mount per la condivisione:

# mkdir /mnt/PUNTODIMOUNT

3. Montare la condivisione usando mount.cifs. Ricordare che non tutte le opzioni sono sempre necessarie o consigliate, ad esempio l'opzione password:

# mount -t cifs //SERVER/CONDIVISIONE PUNTODIMOUNT -o user=NOMEUTENTE,password=PASSWORD,workgroup=WORKGROUP,ip=IPSERVER
SERVER
Il nome macchina Windows
CONDIVISIONE
Nome della condivisione
PUNTODIMOUNT
La cartella locale dove sarà montata la condivisione
-o [options]
Specifica la presenza di opzioni al comando mount.cifs
user
Il nome utente necessario per l'accesso alla condivisione
password
La password di accesso alla condivisione
workgroup
Serve per specificare il gruppo di lavoro Windows
ip
L'indirizzo IP del server --Se il sistema non può identificare il server tramite il nome(DNS, WINS, il file hosts, etc.)
Nota: Evitare di usare i delimitatori delle cartelle (/) alla fine del percorso. Usando //SERVER/CONDIVISIONE/ non funzionerà.

Dato che CIFS rifiuta di effettuare il mount di condivisioni samba non protette, si deve utilizzare l'opzione sec=none(ed il nome utente e la password dalla lista delle opzioni precedente dovranno essere rimosse).

Se il comando mount non riesce a risolvere l'indirizzo del server, ma smbclient può, aggiungere la voce wins alla linea hosts nel file /etc/nsswitch.conf può aiutare. Il corrispondente driver /lib/libnss_wins.so deve essere presente, esso è fornito dal pacchetto (del servizio) samba.

4. Per smontare la condivisione usare il comando:

# umount /mnt/PUNTODIMOUNT
Aggiungere una condivisione in fstab

Aggiungere la seguente linea al file /etc/fstab per un mount rapido:

//SERVER/CONDIVISIONE /mnt/PUNTODIMOUNT cifs noauto,noatime,username=NOMEUTENTE,password=PASSWORD,workgroup=WORKGROUP,ip=SERVERIP 0 0

L'opzione noauto impedisce il mount automatico all'avvio mentre noatime aumenta le prestazioni non aggiornando i tempi di accesso ai file.

Dopo aver aggiunto la precedente linea, la sintassi del comando mount diventa più semplice:

# mount /mnt/PUNTODIMOUNT

Un'altra opzione, per non avere le password in chiaro, è quella di usare l'opzione credentials:

//SERVER/CONDIVISIONE /percorso/di/MOUNT cifs noauto,noatime,credentials=/percorso/per/credenzialismb 0 0

Il file delle credenziali dovrebbe contenere il seguente testo:

username=USERNAME
password=PASSWORD

Per maggiore sicurezza è possibile assegnare i permessi tramite il comando chmod 700 a questo file in modo da impedirne la lettura e la scrittura da parte di altri utenti.

Se si aggiunge una condivisione nel file fstab, il demone netfs dovrà essere aggiunto nell'array DAEMONS in rc.conf, dopo network. Il demone netfs si occuperà di montare le condivisioni durante la fase di avvio e, cosa più importante, di smontarle durante la fase di arresto del sistema. Anche se viene utilizzata l'opzione noauto in fsftab, il demone netfs dovrebbe essere usato. Senza di esso se una condivisione fosse montata, durante la fase di spegnimento porterebbe il demone network ad attendere il time out della connessione, aumentando quindi la durata di arresto del sistema.

Permettere agli utenti di montare le condivisioni

Prima abilitare l'accesso al comando mount, il file fstab dovrà essere modificato. Aggiungere l'opzione users nella voce in /etc/fstab:

//SERVER/CONDIVISIONE /percorso/del/PUNTODIMOUNT cifs users,noauto,noatime,username=NOMEUTENTE,password=PASSWORD,workgroup=WORKGROUP,ip=SERVERIP 0 0
Nota: Questa è l'opzione users(al plurale). Per altri tipi di filesystem, questa opzione è user, senza la "s".

Questo permetterà agli utenti di montatre la condivisione se il suo punto di mount si trova in una cartella controllabile dall'utente; ad esempio la propria cartella home. Per montare le condivisioni Samba in punti di mount che non si posseggono, utilizzare #smbnetfs oppure elevare i privilegi tramite sudo.

Tips and tricks

Condividere file sulla propria rete senza la richiesta di utente e password

Opzione 1 - Forzare le connessioni guest

Modificare il file /etc/samba/smb.conf cambiando la seguente linea:

security = user

in

security = share

Opzione 2 - Permettere le connessioni guest ed Utente

Modificare il file /etc/samba/smb.conf aggiungendo la seguente linea:

map to guest = Bad User

Dopo questa linea

security = user

Se si vuole restringere la condivisione ad una specifica interfaccia di rete, sostituire:

;   interfaces = 192.168.12.2/24 192.168.13.2/24

con:

interfaces = lo eth0
bind interfaces only = true

(cambiando eth0 con il nome dell'interfaccia connessa alla rete con la quale si vuole effettuare la condivisione)

Se si vuole è possibile modificare l'account che accede alle condivisioni, cambiando la seguente linea:

;   guest account = nobody

L'ultimo passo consiste nel creare le condivisioni(per garantire il permesso in scrittura usare l'opzione writable = yes):

[Public Share]
path = /percorso/alla/condivisione_pubblica
available = yes
browsable = yes
public = yes
writable = no

Esempio di configurazione

Questo è un esempio di configurazione funzionante:

[global]
workgroup = WORKGROUP
server string = Samba Server
netbios name = PC_NAME
security = share
; la seguente linea è importante! In caso di problemi di permessi
; assicurarsi che l'utente di seguito sia il solito che possiede
; la cartella che si condivide
guest account = mark
username map = /etc/samba/smbusers
name resolve order = hosts wins bcast
wins support = no
[public] comment = Public Share path = /path/to/public/share available = yes browsable = yes public = yes writable = no

Global Parameters

La prima sezione del file smb.conf serve a configurare i parametri globali, la gran parte delle modifiche sarà effettuata qua. Segue un esempio di sezione Global Parameters:

#Global Parameters
workgroup = HOME
netbios name = nome-della-macchina
encrypt passwords = yes

Il parametro workgroup imposta il nome del gruppo di lavoro al quale volete che la macchina appartenga. Il parametro encrypt passwords deve essere mantenuto a yes a meno che in rete non siano presenti macchine Windows 95 o Windows 98, questi due sistemi infatti non supportano le password criptate. Infine il parametro "netbios name" è il nome che desiderate assegnare alla macchina su cui state lavorando all'interno della rete.

Condivisioni

A seguito si trova la configurazione delle condivisioni. La condivisione più semplice possibile sarà quella in cui un utente può accedere e scrivere nella propria home direcotry. Per fare ciò nel file smb.conf saranno presenti le righe:

[homes]
browseable = no
read only = no

Se si vuole che tutti possano vedere i file, ma solo gli utenti appartenenti ad alcuni gruppi abbiano diritto di scrittura, allora sarà necessario cambiare le righe precedenti in:

[homes]
public = yes
writable = yes
write list = @nome-gruppo

Se vogliamo che gli utenti windows una volta loggati vedano una direcotry home "pulita" (ovvero non i file nascosti, es: ~/.bashrc), allora la sezione homes potrebbe essere:

[homes]
path = /home/%u/smb
browseable = no
read only = no

In questo caso però assicurasi di aggiungere la cartella smb alle home directory degli utenti. Inoltre aggiungere smb alla direcotry /etc/skel, in modo che tutti i nuovi utenti abbiano ~/smb aggiunto in automatico alla creazione:

# mkdir /etc/skel/smb

Aggiungere altre condivisioni differenti dalle direcotry home non è più difficile, anzi. Per aggiungere un'ulteriore condivisione:

[music]
path = /mnt/windows/Music/
browseable = yes
read only = yes
valid users = Bryan, Michael, David, Jane

Il parametro path indica la posizione della direcotry che si vuole condividere. Il parametro valid users comunica a samba quali utenti hanno diritto di accedere a questa condivisione. Una volta aggiunte tutte le condivisioni necessarie, salvare il file ed uscire dall'editor.

Nota: I nomi utente inseriti nel file di configurazione devono coincidere con gli utenti di sistema della macchina Linux ed è consigliato che coincidano anche con quelli presenti sulle macchine Windows.

Aggiungere condivisioni usando l'interfaccia di KDE4

Come configurare le condivisioni in KDE4. La configurazione più semplice usa le condivisioni delle singole home degli utenti con accesso in sola lettura. Configurazioni più avanzate permettono svariate possibilità senza limitazioni alle condivisioni, ma richiedono su oppure sudo per ottenere i privilegi di root.

Individuare le condivisioni di rete

Se non si conosce la struttura della rete locale, e gli strumenti di automazione come #smbnetfs non sono disponibili, i seguenti metodi permetteranno di individuare le condivisioni Samba.

1. Per prima cosa, installare nmap e smbclient.

2. nmap controlla quali porte sono aperte:

# nmap -sT 192.168.1.*

In questo esempio verrà scansionata l'intera classe di indirizzi 192.168.1.*. Ecco il risultato:

$ nmap -sT 192.168.1.*
Starting nmap 3.78 ( http://www.insecure.org/nmap/ ) at 2005-02-15 11:45 PHT
Interesting ports on 192.168.1.1:
(The 1661 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
'''139/tcp  open  netbios-ssn'''
5000/tcp open  UPnP

Interesting ports on 192.168.1.5:
(The 1662 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
6000/tcp open  X11

Nmap run completed -- 256 IP addresses (2 hosts up) scanned in 7.255 seconds

Il primo indirizzo(192.168.1.1) è un altro pc, mentre il secondo è il computer da cui è stata lanciata la scansione.

3. Adesso verso il sistema che risulta avere la porta 139 aperta, sarà usato nmblookup per ottenere i nomi delle condivisioni(NetBIOS names):

$ nmblookup -A 192.168.1.1
Looking up status of 192.168.1.1
        PUTER           <00> -         B <ACTIVE>
        HOMENET         <00> - <GROUP> B <ACTIVE>
        PUTER           <03> -         B <ACTIVE>
        '''PUTER           <20> -         B <ACTIVE>'''
        HOMENET         <1e> - <GROUP> B <ACTIVE>
        USERNAME        <03> -         B <ACTIVE>
        HOMENET         <1d> -         B <ACTIVE>
        MSBROWSE        <01> - <GROUP> B <ACTIVE>

Senza preoccuparsi dei vari risultati, cercare il valore <20>, che indica la macchina con la condivisione file attiva.

4. Usare smbclient per elencare quali servizi sono condivisi da PUTER. Nel caso fosse richiesta una password, premendo invio verrà comunque mostrata la lista:

$ smbclient -L \\PUTER
Sharename       Type      Comment
---------       ----      -------
MY_MUSIC        Disk
SHAREDDOCS      Disk
PRINTER$        Disk
PRINTER         Printer
IPC$            IPC       Remote Inter Process Communication

Server               Comment
---------            -------
PUTER

Workgroup            Master
---------            -------
HOMENET               PUTER

Questo mostra quali cartelle sono condivise, e quindi possono essere montate localmente. Vedi #Accedere alle condivisioni Samba

Controllare da remoto i computer Windows

Samba offre una serie di strumenti per comunicare con Windows. Questi possono essere utili nel caso no si possa prendere il controllo di questi tramite il desktop remoto, ecco alcuni esempi.

  • Inviare il segnale di shutdown con un commento:
$ net rpc shutdown -C "commento" -I INDIRIZZOIP -U NOMEUTENTE%PASSWORD

Se si preferisce forzare lo spegnimento, sostituire l'opzione -C "commento" con -f. In caso si voglia eseguire un riavvio aggiungere -r, seguito da -C "commento" oppure -f.

  • Fermare ed avviare servizi:
$ net rpc service stop NOMESERVIZIO -I INDIRIZZOIP -U NOMEUTENTE%PASSWORD
  • Per vedere tutti i possibili comandi net rpc:
$ net rpc

Bloccare determinate estenzioni di file extensions sulle condivisioni samba

Samba permette come opzione di bloccare i file corrispondenti ad un determinato pattern, come un estensione. Questa opzione può essere usata per impedire la diffusione di virus oppure dissuadere gli utenti dallo spercare spazio con determinati file:

Veto files = /*.exe/*.com/*.dll/*.bat/*.vbs/*.tmp/*.mp3/*.avi/*.mp4/*.wmv/*.wma/

Risoluzione di problemi

Windows 7 problemi di connettività - mount error(12): cannot allocate memory

Un noto bug di Windows 7 che causa l'errore "mount error(12): cannot allocate memory" su di una condivisione cifs perfettamente configrata dal lato Linux, può essere risolto impostando alcune chiavi di regitro sul pc Windows come di seguito:

  • HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache (impostata a 1)
  • HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size (impostata a 3)

Riavviare il pc Windows per applicare le modifiche.

Nota: Cercando su Google si otterranno diversi tweak сhe consigliano agli utenti di aggiungere una chiave per modificare la dimensione "IRPStackSize". Questo non è corretto per sistemare questo problema su Windows 7. Non lo fate.

Collegamento all'articolo originale.

Problemi con gli accessi da Windows a condivisioni protette da password

In caso di problemi di accesso da Windows alle condivisioni protette da password, provare ad aggiungere queste righe al file /etc/samba/smb.conf:[2]

Notare che si dovrà modificare il file smb.conf locale non quello del server

[global]
# lanman fix
client lanman auth = yes
client ntlmv2 auth = no

Lentezza nell'apparsa della finestra per l'accesso

Si sono verificati ritardi anche di circa 30 secondi, dalla richiesta di connessione all'apparsa della finestra di accesso, sia utilizzando Windows XP che Windows 7. E analizzando il log error.log compare:

[2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
Unable to connect to CUPS server localhost:631 - Interrupted system call

Dato che il problema si verificava anche se sul server non erano connesse stampanti, la soluzione consiste nell'aggiungere queste righe nella sezione global del file /etc/samba/smb.conf

load printers = no
printing = bsd
disable spoolss = yes
printcap name = /dev/null
Non c'è la certezza che tutte queste righe siano effettivamente necessarie, ma in questo modo funziona.

Cambiamenti in Samba versione 3.4.0

Tra le maggiori innovazioni in Samba 3.4.0:

Il programma di gestione delle password di default è stato cambiato in favore di 'tdbsam'! Di conseguenza tutte le configurazioni esistenti, che invece utilizzano 'smbpasswd', senza una dichiarazione esplicita risultano non funzionanti.

Se si vuole utilizzare 'smbpasswd' modificare il file /etc/samba/smb.conf:

passdb backend = smbpasswd

oppure convertire a tdbsam gli accessi:

sudo pdbedit -i smbpasswd -e tdbsam

Error: Value too large for defined data type

Con alcune applicazioni si può ottenere questo errore provando ad aprire un file da una condivisione smbfs/cifs:

 Value too large for defined data type

La soluzione[3], è aggiungere questa opzione al mount delle condivisioni smbfs/cifs(all'interno del file /etc/fstab ad esempio):

 ,nounix,noserverino

Testato su Arch Linux aggiornata al 02/12/2009

Devo riavviare Samba per rendere le condivisioni visibili agli altri pc

Se dopo l'avvio del computer, le condivisioni samba configurate non sono accessibili da nessun client, controllare:

  • di non aver dimenticato di inserire il demone samba all'interno dell'array DAEMONS nel file /etc/rc.conf (dopo il demone network o qualsiasi sia il demone di gestione della rete es.wicd,networkmanager)
  • che il demone network non sia avviato in background (quindi non deve essere preceduto dal simbolo @ all'interno del suddetto array). Rimuovere il simbolo '@' può risolvere il problema. Riavviare e controllare.

Si presume che: quando samba viene avviato, probabilmente il demone network non ha ancora finito di avviarsi correttamente, quindi il server samba non identifica l'interfaccia di rete sulla quale stare in ascolto, e quindi fallisce la sua inizializzazione.

Risorse