Condividere cartelle tra Windows e Ubuntu
Sempre più aziende migrano i loro server da Windows a Ubuntu (linux).
Spesso il cambio di server avviene in prossimità dell’aggiornamento di licenza di Windows, che per ovvi motivi (aumento delle prestazioni, incompatibilità con nuovi software) va fatta circa ogni 3-4 anni. L’aggiornamento spesso non è indolore e può anche essere costoso.
Di conseguenza si opta per cambiare sistema operativo e passare a versioni Linux free. La più utilizzata è la versione server di Ubuntu. Questo, oltre ad un risparmio economico, in molti casi aumenta notevolmente le prestazioni del server stesso. A me personalmente è capitato spesso (“Sempre”, in alcuni casi l’ho pretesa) di consigliare questa migrazione.
Miglioramenti si ma attenzione!!
Chi, come me, lavora con tecnologia php ha un notevole miglioramento delle prestazioni. In un contesto aziendale non sono da sottovalutare una serie di problematiche che questo cambiamento può comportare. La prima difficoltà è quella di condividere cartelle tra Windows e Ubuntu. Non è proprio consigliabile e nemmeno da pretendere di cambiare tutti i pc aziendali (per lo più con sistema operativo Windows) per il solo cambio del server. Una soluzione al problema è l’installazione e la configurazione di samba.

Ecco una piccola guida all’installazione e alla configurazione di Samba
I miei dati
ambiente ubuntu 14.04
la mia rete 192.168.2.0/24
pc windows 192.168.2.10
user accesso a windows = admin password = psw
installare samba
sudo apt-get install samba
nano /etc/samba/smb.conf
configurare samba (se i parametri ci sono già modificarli se no aggiungerli in global)
[global] dns proxy = no allow hosts = 192.168.2.0/24 # Range di IP che possono accedere al server workgroup = ET # Nome del gruppo di lavoro netbios = SAMBA # Nome della macchina nel gruppo di lavoro security = USER # Livello di sicurezza delle condivisioni server string = FILE SERVER # Descrizione della macchina create mask = 0755 # Permessi sulle cartella
una volta installato il server samba consiglio di installare delle utility per il montaggio semplice delle cartelle condivise
installare cifs per il montaggio delle cartelle
sudo aptitude install cifs-utils
comando per montare una cartella
mount -t cifs -o user=admin '\\192.168.2.10\cartellaCondivisaWindows' /home/cartellaDiMountUbuntu
se la cartella non è protetta da password
mount -t cifs -o user=admin '\\192.168.2.10\cartellaCondivisaWindows' /home/cartellaDiMountUbuntu
A questo punto la cartella è condivisa ed è accessibile dal server Ubuntu come se fosse una cartella interna al sistema. Non consiglio di configurare il contrario. Per la lettura di file o cartella da Windows a Ubuntu io utilizzo sempre dei comandi veloci direttamente da shell.
Per rendere il montaggio permanente è necessario configurare fstab.
nano /etc/fstab
aggiungi rigo alla fine
//192.168.2.10/cartellaCondivisaWindows /home/cartellaDiMountUbuntu cifs username=admin,password=psw,iocharset=utf8,sec=ntlm 0 0
se la cartella non è protetta
//192.168.2.10/cartellaCondivisaWindows /home/cartellaDiMountUbuntu guest,uid=1000,iocharset=utf8,codepage=unicode,unicode 0 0
Come sempre le rogne più fastidiose, in ambiente linux, sono quelle che riguardano i permessi.
Nel mio caso avevo la necessità di dare i permessi di scrittura ad una cartella condivisa su Windows ad Apache (software php che gira sul server Ubuntu) quindi all’user www-data. Ho risolto modificando la riga precedente nel seguente modo.
//192.168.2.10/cartellaCondivisaWindows /home/cartellaDiMountUbuntu cifs username=admin,password=psw,uid=www-data,gid=www-data,file_mode=0666,dir_mode=0777,iocharset=utf8,sec=ntlm 0 0