SAMBA: possibili problemi: differenze tra le versioni
Wtf (discussione | contributi) |
Wtf (discussione | contributi) Nessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
{{SAMBA1}} | {{SAMBA1}} | ||
=== Log === | === Log === | ||
Se nessuna delle soluzioni qui proposte funziona e/o si vogliono più informazioni ricordarsi di controllare i log. Oltre ai soliti <code>/var/log/syslog</code> e <code>/var/log/messages</code>, Samba ha anche una serie di suoi log predefiniti presenti in <code>/var/log/samba</code>. | Se nessuna delle soluzioni qui proposte funziona e/o si vogliono più informazioni ricordarsi di controllare i log. Oltre ai soliti <code>/var/log/syslog</code> e <code>/var/log/messages</code>, Samba ha anche una serie di suoi log predefiniti presenti in <code>/var/log/samba</code>. | ||
=== "falso" avvio === | |||
Assicurarsi sempre che il demone di samba sia davvero in esecuzione: | |||
<pre>systemctl status smbd -l</pre> | |||
Se si riceve un output di questo tipo allora il demone è davvero in funzione | |||
<pre> | |||
● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd) | |||
Loaded: loaded (/etc/init.d/smbd) | |||
Active: active (running) since sab 2015-10-03 16:26:10 CEST; 43min ago | |||
Process: 2213 ExecStop=/etc/init.d/smbd stop (code=exited, status=0/SUCCESS) | |||
Process: 2218 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS) | |||
CGroup: /system.slice/smbd.service | |||
├─2227 /usr/sbin/smbd -D | |||
├─2234 /usr/sbin/smbd -D | |||
</pre> | |||
Notare la scritta <code>Active: active '''(running)'''</code>. | |||
Se invece si riceve qualcosa del genere allora non è in esecuzione: | |||
<pre> | |||
● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd) | |||
Loaded: loaded (/etc/init.d/smbd) | |||
Active: active (exited) since sab 2015-10-03 11:39:58 CEST; 4min 12s ago | |||
Process: 1799 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS) | |||
</pre> | |||
Notare la scritta <code>Active: active '''(exited)'''</code>. | |||
=== Collegamenti simbolici === | === Collegamenti simbolici === | ||
Riga 15: | Riga 43: | ||
</pre> | </pre> | ||
=== NT_STATUS_INVALID_NETWORK_RESPONSE === | === Errori restituiti da ''smbclient'' e ''mount'' | ||
==== NT_STATUS_INVALID_NETWORK_RESPONSE ==== | |||
Qualora si dovesse riceve il seguente messaggio d'errore usando <code>smbclient</code>: | Qualora si dovesse riceve il seguente messaggio d'errore usando <code>smbclient</code>: | ||
<pre>machine WWW.XXX.YYY.ZZZ rejected the negotiate protocol. Error was : NT_STATUS_INVALID_NETWORK_RESPONSE</pre> | <pre>machine WWW.XXX.YYY.ZZZ rejected the negotiate protocol. Error was : NT_STATUS_INVALID_NETWORK_RESPONSE</pre> | ||
controllare di aver incluso nel parametro ''hosts allow'' l'indirizzo ''WWW.XXX.YYY.ZZZ'' (o la subnet che lo contiene). | controllare di aver incluso nel parametro ''hosts allow'' l'indirizzo ''WWW.XXX.YYY.ZZZ'' (o la subnet che lo contiene). | ||
=== NT_STATUS_BAD_NETWORK_NAME === | ==== NT_STATUS_BAD_NETWORK_NAME ==== | ||
In genere quest'errore di <code>smbclient</code> è dovuto ad una errata indicazione del servizio cui si vuole accedere, per esempio: | In genere quest'errore di <code>smbclient</code> è dovuto ad una errata indicazione del servizio cui si vuole accedere, per esempio: | ||
<pre> | <pre> | ||
Riga 30: | Riga 61: | ||
Nel primo caso si sono usati troppi '''/''', nel secondo l'opzione '''-L''' andava anticipata rispetto all'indirizzo IP e nel terzo caso si è indicata una risorsa condivisa inesistente. Nell'ultima riga si è usato o un nome al posto dell'indirizzo IP, il che è assolutamente lecito, tuttavia se tale nome è errato oppure il PC in uso non è in grado di risolvere correttamente il nome specificato allora si riceve l'errore in oggetto. | Nel primo caso si sono usati troppi '''/''', nel secondo l'opzione '''-L''' andava anticipata rispetto all'indirizzo IP e nel terzo caso si è indicata una risorsa condivisa inesistente. Nell'ultima riga si è usato o un nome al posto dell'indirizzo IP, il che è assolutamente lecito, tuttavia se tale nome è errato oppure il PC in uso non è in grado di risolvere correttamente il nome specificato allora si riceve l'errore in oggetto. | ||
=== NT_STATUS_ACCESS_DENIED === | ==== NT_STATUS_ACCESS_DENIED ==== | ||
Se si riceve l'errore <code>tree connect failed: NT_STATUS_ACCESS_DENIED</code> assicurarsi che: | Se si riceve l'errore <code>tree connect failed: NT_STATUS_ACCESS_DENIED</code> assicurarsi che: | ||
* l'utente usato esista davvero, per esempio attraverso il comando <code># pdbedit -w -L</code>; | * l'utente usato esista davvero, per esempio attraverso il comando <code># pdbedit -w -L</code>; | ||
* assicurarsi che l'utente abbia i permessi corretti per le risorse cui si vuole accedere. | * assicurarsi che l'utente abbia i permessi corretti per le risorse cui si vuole accedere. | ||
==== NT_STATUS_IO_TIMEOUT ==== | |||
Se si riceve il messaggio d'errore <code>protocol negotiation failed: NT_STATUS_IO_TIMEOUT</code> è possibile che smbd non sia in esecuzione, si veda "falso avvio" qui sopra. | |||
==== NT_STATUS_CONNECTION_REFUSED ==== | |||
Se si riceve il messaggio d'errore <code>Connection failed: Error NT_STATUS_CONNECTION_REFUSED</code> è possibile che: | |||
* smbd non sia in esecuzione, si veda allora "falso avvio" qui sopra; | |||
* ci sia un problema con una connessione di tipo PPP. Se infatti si è configurato una connessione adsl e la corrispondente interfaccia di rete, ad es. ppp0, non è attiva allora può accadere che sambra restituisca il succitato errore. Provare dunque ad attivare tale connessione e riprovare a connettersi. | |||
=== Schede di rete multiple === | === Schede di rete multiple === |
Versione delle 15:22, 3 ott 2015
Guida estesa |
Sommario |
Log
Se nessuna delle soluzioni qui proposte funziona e/o si vogliono più informazioni ricordarsi di controllare i log. Oltre ai soliti /var/log/syslog
e /var/log/messages
, Samba ha anche una serie di suoi log predefiniti presenti in /var/log/samba
.
"falso" avvio
Assicurarsi sempre che il demone di samba sia davvero in esecuzione:
systemctl status smbd -l
Se si riceve un output di questo tipo allora il demone è davvero in funzione
● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd) Loaded: loaded (/etc/init.d/smbd) Active: active (running) since sab 2015-10-03 16:26:10 CEST; 43min ago Process: 2213 ExecStop=/etc/init.d/smbd stop (code=exited, status=0/SUCCESS) Process: 2218 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS) CGroup: /system.slice/smbd.service ├─2227 /usr/sbin/smbd -D ├─2234 /usr/sbin/smbd -D
Notare la scritta Active: active (running)
.
Se invece si riceve qualcosa del genere allora non è in esecuzione:
● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd) Loaded: loaded (/etc/init.d/smbd) Active: active (exited) since sab 2015-10-03 11:39:58 CEST; 4min 12s ago Process: 1799 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)
Notare la scritta Active: active (exited)
.
Collegamenti simbolici
Se si hanno dei collegamenti simbolici che puntano a risorse non comprese in quelle dichiarate in Samba e si riceve un errore simile al seguente:
smbd[7407]: check_reduced_name: Bad access attempt: cartella_condivisa is a symlink outside the share path
provare ad aggiungere quanto segue nella sezione globale di smb.conf
:
follow symlinks = yes unix extensions = no wide links = yes
=== Errori restituiti da smbclient e mount
NT_STATUS_INVALID_NETWORK_RESPONSE
Qualora si dovesse riceve il seguente messaggio d'errore usando smbclient
:
machine WWW.XXX.YYY.ZZZ rejected the negotiate protocol. Error was : NT_STATUS_INVALID_NETWORK_RESPONSE
controllare di aver incluso nel parametro hosts allow l'indirizzo WWW.XXX.YYY.ZZZ (o la subnet che lo contiene).
NT_STATUS_BAD_NETWORK_NAME
In genere quest'errore di smbclient
è dovuto ad una errata indicazione del servizio cui si vuole accedere, per esempio:
$ smbclient ////WWW.XXX.YYY.ZZZ//cartella_condivisa -U nome_utente $ smbclient WWW.XXX.YYY.ZZZ -L -U nome_utente $ smbclient //WWW.XXX.YYY.ZZZ/cartella_inesistente -U nome_utente $ smbclient //nome_server_scoretto/cartella_inesistente -U nome_utente
Nel primo caso si sono usati troppi /, nel secondo l'opzione -L andava anticipata rispetto all'indirizzo IP e nel terzo caso si è indicata una risorsa condivisa inesistente. Nell'ultima riga si è usato o un nome al posto dell'indirizzo IP, il che è assolutamente lecito, tuttavia se tale nome è errato oppure il PC in uso non è in grado di risolvere correttamente il nome specificato allora si riceve l'errore in oggetto.
NT_STATUS_ACCESS_DENIED
Se si riceve l'errore tree connect failed: NT_STATUS_ACCESS_DENIED
assicurarsi che:
- l'utente usato esista davvero, per esempio attraverso il comando
# pdbedit -w -L
; - assicurarsi che l'utente abbia i permessi corretti per le risorse cui si vuole accedere.
NT_STATUS_IO_TIMEOUT
Se si riceve il messaggio d'errore protocol negotiation failed: NT_STATUS_IO_TIMEOUT
è possibile che smbd non sia in esecuzione, si veda "falso avvio" qui sopra.
NT_STATUS_CONNECTION_REFUSED
Se si riceve il messaggio d'errore Connection failed: Error NT_STATUS_CONNECTION_REFUSED
è possibile che:
- smbd non sia in esecuzione, si veda allora "falso avvio" qui sopra;
- ci sia un problema con una connessione di tipo PPP. Se infatti si è configurato una connessione adsl e la corrispondente interfaccia di rete, ad es. ppp0, non è attiva allora può accadere che sambra restituisca il succitato errore. Provare dunque ad attivare tale connessione e riprovare a connettersi.
Schede di rete multiple
È possibile che nel caso siano presenti più schede di rete, di cui una o più non configurate, l'accesso al server Samba risulti impedito. Possibili soluzioni sono:
- Creare un bridge di rete comprendente tutte le schede.
- Togliere fisicamente le schede di rete non necessarie.
- Configurare il Bind delle schede di Rete correttamente nel
samba.conf
aggiungendo:interfaces = localhost 192.168.1.0/24 bind interfaces only = Yes
Il servizio si presenta sul localhost e sulla "EthX" che è configurata con la classe privata descritta da "interfaces"
Impossibile montare automaticamente le risorse all'avvio
Se si riesce a montare manualmente le risorse remote senza problemi, ma non in automatica all'avvio tramite fstab
, provare ad aggiungere alle opzioni della risorsa anche auto, quindi riavviare.
A questo punto eseguire:
# mount -a
Se la risorsa remota viene caricata correttamente è probabile che il problema sia di tipo temporale, ovvero il sistema tenta di montare la risorsa remota prima che l'interfaccia di rete sia correttamente configurata, altrimenti è probabile che ci sia un qualche errore nella relativa riga di fstab
.
Nel primo caso se si usa uno strumento grafico come network-manager
, il primo tentativo da fare è provare a configurare le interfacce di rete tramite /etc/network/interfaces
, quindi riavviare.
Se il problema persiste si hanno ancora alcune opzioni:
- Aggiungere alla riga di
fstab
relativa alla risorsa samba l'opzioneauto
ed inserire nello script/etc/rc.local
il comandomount -a
. Val la pena notare che non si tratta di una soluzione, ma di un brutale trucco per aggirare il problema (anche se generalmente efficace). - Uso di uno script personalizzato che provveda al montaggio delle risorse invece di
fstab
; si noti in tal senso che lo strumento graficowicd
permette di associare script a particolari eventi. - Sostituire il caricamento automatico all'avvio tramite
fstab
con l'utilizzo diautofs
, uno strumento che permette il caricamento dinamico delle risorse remote su imput dell'utente.