Sui sistemi operativi Linux e UNIX, una condivisione di Windows può essere montata su un particolare punto di montaggio nell’albero delle directory locali usando l’opzione cifs
del comando mount
.
Il Common Internet File System (CIFS) è un protocollo di condivisione file di rete. CIFS è una forma di SMB.
In questo tutorial, spiegheremo come montare manualmente e automaticamente le condivisioni di Windows sui sistemi Linux.
Installazione dei pacchetti di utilità CIFS #
Per montare una condivisione di Windows su un sistema Linux, prima è necessario installare il pacchetto di utilità CIFS.
-
Installazione delle utilità CIFS su Ubuntu e Debian:
sudo apt update
sudo apt install cifs-utils
-
Installazione delle utilità CIFS su CentOS e Fedora:
sudo dnf install cifs-utils
Il nome del pacchetto può differire tra le distribuzioni Linux.
Montaggio di una condivisione CIFS per Windows #
Montare una condivisione remota per Windows è simile al montaggio dei normali file system.
Prima di tutto, create una directory che serva da punto di montaggio per la condivisione remota di Windows:
sudo mkdir /mnt/win_share
Eseguite il seguente comando come root o utente con privilegi sud per montare la condivisione:
sudo mount -t cifs -o username=<win_share_user> //WIN_SHARE_IP/<share_name> /mnt/win_share
Vi verrà richiesto di inserire la password:
Password:
Al successo, non viene prodotto alcun output.
Per verificare che la condivisione remota di Windows sia stata montata con successo, usate il comando mount
o df -h
.
Una volta montata la condivisione, il punto di montaggio diventa la directory principale del file system montato. Potete lavorare con i file remoti come se fossero file locali.
La password può anche essere fornita sulla linea di comando:
sudo mount -t cifs -o username=<win_share_user>,password=<win_share_password> //WIN_SHARE_IP/<share_name> /mnt/win_share
Se l’utente è nel gruppo di lavoro o nel dominio di Windows, potete impostarla come segue:
sudo mount -t cifs -o username=<win_share_user>,domain=<win_domain> //WIN_SHARE_IP/<share_name> /mnt/win_share
Per una maggiore sicurezza si raccomanda di usare un file di credenziali, che contiene il nome utente della condivisione, la password e il dominio.
Il file delle credenziali ha il seguente formato:
username=userpassword=passworddomain=domain
Il file non deve essere leggibile dagli utenti. Per impostare i permessi e la proprietà corretti, eseguire:
sudo chown root: /etc/win-credentials
sudo chmod 600 /etc/win-credentials
Per usare il file delle credenziali, definirlo come segue:
sudo mount -t cifs -o credentials=/etc/win-credentials //WIN_SHARE_IP/<share_name> /mnt/win_share
Di default la condivisione montata è di proprietà di root, e i permessi sono impostati su 777.
Utilizzare l’opzione dir_mode
per impostare i permessi della directory e file_mode
per impostare i permessi dei file:
sudo mount -t cifs -o credentials=/etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
La proprietà predefinita di utenti e gruppi può essere cambiata con le opzioni uid
e gid
:
sudo mount -t cifs -o credentials=/etc/win-credentials,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
Per impostare opzioni aggiuntive, aggiungerle come elenco separato da virgole dopo l’opzione -o
. Per ottenere un elenco di tutte le opzioni di montaggio digitare man mount
nel vostro terminale.
Montaggio automatico #
Quando la condivisione viene montata manualmente con il comando mount
, non persiste dopo un riavvio.
Il file /etc/fstab
contiene una lista di voci che definiscono dove e quale filesystem sarà montato all’avvio del sistema.
Per montare automaticamente una condivisione di Windows all’avvio del sistema Linux, definire il montaggio nel file /etc/fstab
. La linea deve includere l’hostname o l’indirizzo IP del PC Windows, il nome della condivisione e il punto di montaggio sulla macchina locale.
Aprire il file /etc/fstab
con il tuo editor di testo:
sudo nano /etc/fstab
Aggiungere la seguente linea al file:
# <file system> <dir> <type> <options> <dump> <pass>//WIN_SHARE_IP/share_name /mnt/win_share cifs credentials=/etc/win-credentials,file_mode=0755,dir_mode=0755 0 0
Eseguire il seguente comando per montare la condivisione:
sudo mount /mnt/win_share
Il comando mount
, leggerà il contenuto del /etc/fstab
e monterà la condivisione.
Al prossimo riavvio del sistema, la condivisione di Windows sarà montata automaticamente.
Smontare la condivisione di Windows #
Il comando umount
stacca (smonta) il file system montato dall’albero delle directory.
Per staccare una condivisione Windows montata, usare il comando umount
seguito dalla directory dove è stata montata o dalla condivisione remota:
sudo umount /mnt/win_share
Se il montaggio CIFS ha una voce nel file fstab
, rimuoverla.
Il comando umount
non riuscirà a staccare la condivisione quando è in uso. Per scoprire quali processi stanno accedendo alla condivisione di windows, usate il comando fuser
:
fuser -m MOUNT_POINT
Una volta trovati i processi, potete fermarli con il comando kill
e smontare la condivisione.
Se avete ancora problemi a smontare la condivisione, usate l’opzione -l
--lazy
), che vi permette di smontare un file system occupato non appena non è più occupato.
sudo umount -l MOUNT_POINT
Conclusione #
In Linux, è possibile montare un Windows condiviso utilizzando il comando mount
con l’opzione cifs
.