Nel mio studio ho un web server Linux che utilizzo per testare in locale i siti web. Per la verità è una macchina virtuale che gira su Mac, ma sulla rete risulta essere in tutto e per tutto come un computer separato. Per la condivisione dei file il servizio comune ad entrambe le piattaforme è SMB ed OS X lo supporta, anche se non proprio in modo perfetto. Le cose sono peggiorate drasticamente da quando ho installato Mavericks, perché pur vedendo le cartelle ed il loro contenuto non riesco ad aprire nessun file, ricevendo un errore di questo tipo:

errore

Girovagando un po' per la rete ho trovato il possibile problema nel protocollo SMB2 presente in OS X 10.9, il quale non va evidentemente d'accordo con quello presente sul mio server Linux. Suò blog di Michael Larsen ho individuato un workaround e, dopo averlo provato, posso assicurare che funziona perfettamente. In pratica consiste nel creare un file di configurazione in cui si specifica ad OS X che il nostro utente preferisce continuare ad usare il "vecchio" SMB invece di SMB2.

Con una sola riga da terminale è possibile creare questo file, posizionandolo nel punto corretto, ed inserire al suo interno il comando necessario allo scopo:

echo "[default]" >> ~/Library/Preferences/nsmb.conf; echo "smb_neg=smb1_only" >> ~/Library/Preferences/nsmb.conf

Dopo averlo eseguito è necessario riavviare perché abbia effetto. Da quel momento verrà utilizzato il vecchio protocollo e tutti i problemi saranno risolti. Se per qualche ragione si volesse riprendere ad utilizzare SMB2 basterà cancellare il file ~/Library/Preferences/nscmb.conf con questo comando:

rm ~/Library/Preferences/nsmb.conf