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
.