Introduzione

Sui sistemi operativi Linux e UNIX, è possibile montare una condivisione Windows su un particolare punto della directory locale usando l'opzione cifs del comando mount.

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 Windows su sistemi Linux.

Installare i pacchetti CIFS

Per montare una condivisione Windows su un sistema Linux, devi prima installare il pacchetto CIFS.

sudo apt update
sudo apt install cifs-utils

Per installare i pacchetti CIFS su CentOS e Fedora:

sudo dnf install cifs-utils

Il nome del pacchetto può differire tra le distribuzioni Linux.

Montare una condivisione Windows CIFS

Il montaggio di una condivisione Windows remota è simile al montaggio di file system regolari.

Innanzitutto, crea una directory che funga da mount point per la condivisione remota di Windows:

sudo mkdir /mnt/win_share

Eseguire il comando seguente come utente root o utente con privilegi sudo per montare la condivisione:

sudo mount -t cifs -o username=<win_share_user> //WIN_SHARE_IP/<share_name> /mnt/win_share

Ti verrà richiesto di inserire la password:

Password:

In caso di successo, non viene prodotto alcun output.

Per verificare che la condivisione Windows remota sia stata montata correttamente, utilizzare il comando mount o df -h.

Una volta montata la condivisione, il punto di montaggio diventa la directory principale del file system montato. Puoi lavorare con i file remoti come se fossero file locali.

La password può essere anche inserita direttamente nella riga 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, è possibile impostarlo come segue:

sudo mount -t cifs -o username=<win_share_user>,domain=<win_domain> //WIN_SHARE_IP/<share_name> /mnt/win_share

Per una migliore sicurezza, si consiglia di utilizzare un file di credenziali, che contiene nome utente, password e dominio condivisi.

Il file delle credenziali /etc/win-credentials ha il seguente formato:

username = user
password = password
domain = domain

Il file non deve essere leggibile dagli utenti. Per impostare le autorizzazioni e la proprietà corrette, eseguire:

sudo chown root: /etc/win-credentials
sudo chmod 600 /etc/win-credentials

Per utilizzare il file delle credenziali, definirlo come segue:

sudo mount -t cifs -o credentials=/etc/win-credentials //WIN_SHARE_IP/<share_name> /mnt/win_share

Per impostazione predefinita, la condivisione montata è di proprietà di root e le autorizzazioni sono impostate su 777.

Utilizzare l'opzione dir_mode per impostare l'autorizzazione alla directory e l'opzione file_mode per impostare l'autorizzazione al 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 dell'utente e del gruppo può essere modificata 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, aggiungile come elenco separato da virgole dopo l'opzione -o. Per ottenere un elenco di tutte le opzioni di montaggio digitare man mount nel terminale.

Auto Mounting

Quando la condivisione viene montata manualmente con il comando mount, non persiste dopo un riavvio.

Il file /etc/fstab contiene un elenco di voci che definiscono dove e come quale filesystem verrà montato all'avvio del sistema.

Per montare automaticamente una condivisione Windows all'avvio del sistema Linux, definire il montaggio nel file /etc/fstab. La riga deve includere l'hostname o l'indirizzo IP del PC Windows, il nome della condivisione e il punto di montaggio sul computer locale.

Apri il file /etc/fstab con il tuo editor di testo:

sudo nano /etc/fstab

Aggiungi la seguente riga 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

Salvare e chiudere il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.

Eseguire il comando seguente per montare la condivisione:

sudo mount /mnt/win_share

Il comando mount leggerà il contenuto di /etc/fstab e monterà la condivisione.

Al successivo riavvio del sistema, la condivisione di Windows verrà montata automaticamente.

Smonta condivisione di Windows

Il comando umount scollega (smonta) il file system montato dall'albero delle directory.

Per staccare una condivisione di Windows montata, utilizzare il comando umount seguito dalla directory in cui è stata montata o dalla condivisione remota:

sudo umount /mnt/win_share

Se il mount CIFS ha una voce nel file fstab, rimuoverlo.

Il comando umount non riuscirà a staccare la condivisione quando è in uso. Per scoprire quali processi accedono alla condivisione di Windows, utilizzare il comando fuser:

fuser -m MOUNT_POINT

Una volta individuati i processi, è possibile interromperli con il comando kill e successivamente smontare la condivisione.

Se i problemi persistono durante lo smontaggio della condivisione, utilizzare l' opzione -l( --lazy), che consente di smontare un file system occupato non appena non è più occupato.

sudo umount -l MOUNT_POINT

Conclusione

In Linux, è possibile montare una condivisione Windows usando il comando mount con l'opzione cifs.