GNU/Linux >> Linux Esercitazione >  >> Linux

Come montare le condivisioni Windows o Samba in modo permanente

Questo howto descrive come montare le condivisioni CIFS (SMB) di Windows in modo permanente. Le condivisioni potrebbero essere ospitate su un computer/server Windows o su un server Linux/UNIX che esegue Samba. Questo documento si applica anche alle condivisioni SMBFS, che sono simili a CIFS ma sono obsolete e dovrebbero essere evitate se possibile (link).

Questa attribuzione si basa sul documento Ubuntu originale (link), scritto da Contributors al wiki della documentazione di Ubuntu.

(Questo documento non descrivi come ospitare le condivisioni da solo, solo come accedere alle condivisioni che sono ospitate da qualche altra parte. Per le condivisioni di hosting, usa Samba.)

Prerequisiti

Assumiamo che:

  • Le connessioni di rete sono state configurate correttamente.
  • Il tuo nome utente locale è ubuntuusername .

  • Il nome utente di condivisione sul computer Windows è msusername .

  • La password di condivisione sul computer Windows è mspassword .

  • Il nome del computer Windows è nomeserver (può essere un indirizzo IP o un nome assegnato).

  • Il nome della condivisione è nome condivisione .

  • Vuoi montare la condivisione in /media/windowsshare .

Installazione CIFS

sudo apt-get install cifs-utils

Sui sistemi precedenti:

sudo apt-get install smbfs

Montaggio di cartelle di rete (guest) non protette

Innanzitutto, creiamo la directory di montaggio. Avrai bisogno di una directory separata per ogni montaggio.

sudo mkdir /media/windowsshare

Quindi modifica il tuo file /etc/fstab (con privilegi di root) per aggiungere questa riga:

//servername/sharename  /media/windowsshare  cifs  guest,uid=1000,iocharset=utf8  0  0

dove;

  • ospite indica che non è necessaria una password per accedere alla condivisione,

  • uid=1000 rende l'utente Linux specificato dall'id il proprietario della condivisione montata, consentendo loro di rinominare i file,

  • iocharset=utf8 consente l'accesso a file con nomi in lingue diverse dall'inglese. Questo non funziona con condivisioni di dispositivi come Buffalo Tera Station o macchine Windows che esportano le proprie condivisioni utilizzando ISO8895-15.

  • Se è presente spazio nel percorso del server , devi sostituirlo con \040, ad esempio //nomeserver/My\040Documents

Dopo aver aggiunto la voce a /etc/fstab, digitare:

sudo mount -a

Questo (ri)monterà tutte le voci elencate in /etc/fstab.

Monta cartelle di rete protette da password

Il modo più rapido per montare automaticamente una condivisione protetta da password è modificare /etc/fstab (con privilegi di root), per aggiungere questa riga:

//servername/sharename  /media/windowsshare  cifs  username=msusername,password=mspassword,iocharset=utf8,sec=ntlm  0  0

Questo non una buona idea comunque:/etc/fstab è leggibile da tutti, così come la tua password di Windows al suo interno. Il modo per aggirare questo è usare un file di credenziali. Questo è un file che contiene solo il nome utente e la password.

Utilizzando un editor di testo, crea un file per le credenziali di accesso ai server remoti:

gedit ~/.smbcredentials

Inserisci il nome utente e la password di Windows nel file:

username=msusername
password=mspassword

Salva il file, esci dall'editor.

Modifica le autorizzazioni del file per impedire l'accesso indesiderato alle tue credenziali:

chmod 600 ~/.smbcredentials

Quindi modifica il tuo file /etc/fstab (con privilegi di root) per aggiungere questa riga (sostituendo la riga non sicura nell'esempio sopra, se l'hai aggiunta):

//servername/sharename /media/windowsshare cifs credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,sec=ntlm 0 0

Salva il file, esci dall'editor.

Infine, verifica la voce fstab emettendo:

sudo mount -a

Se non ci sono errori, dovresti testare come funziona dopo un riavvio. La tua condivisione remota dovrebbe essere montata automaticamente.

Autorizzazioni speciali

Se hai bisogno di un permesso speciale (come chmod ecc.), dovrai aggiungere un uid (abbreviazione di "id utente") o gid (per 'ID gruppo') alle opzioni di montaggio della condivisione.

//servername/sharename  /media/windowsshare  cifs   uid=ubuntuuser,credentials=/home/ubuntuuser/.smbcredentials,iocharset=utf8,sec=ntlm   0       0

Risoluzione dei problemi

Errori di accesso

Se ricevi l'errore "mount error(13) autorizzazione negata", il server ha negato l'accesso. Ecco le prime cose da controllare:

  • Stai utilizzando un nome utente e una password validi? Quell'account ha davvero accesso a questa cartella?
  • Hai uno spazio bianco nel file delle credenziali? Dovrebbe essere password=mspassword , non password = mspassword .

  • Hai bisogno di un dominio? Ad esempio, se ti viene detto che il tuo nome utente è SALES\sally , allora il tuo nome utente è sally e il tuo dominio è VENDITE . La voce fstab dovrebbe essere:...username=sally,password=pass,domain=SALES,... Oppure:...credentials=/percorso/del/file,dominio=VENDITE,...

  • L'impostazione di sicurezza è corretta? Il più comune è sec=ntlm , ma puoi anche provare le altre opzioni elencate nella pagina man di mount.cifs. L'elenco delle pagine man esclude l'opzione sec=lanman per qualche motivo, ma dovresti provare anche quello (vedi discussione).

La cartella di rete non protetta non si monta automaticamente

Ho riscontrato una situazione in cui una cartella di rete non protetta non si montava automaticamente durante l'avvio, ma dopo aver inserito manualmente "sudo mount -a" è stata montata correttamente. L'ho risolto sostituendo l'opzione "guest" con "username=guest,password=". Se qualcuno ha una spiegazione per questo, si prega di lasciare un commento.

//servername/sharename  /media/windowsshare  smbfs  username=guest,password=,uid=1000,iocharset=utf8,codepage=unicode,unicode  0  0

Monta durante l'accesso invece che all'avvio

Se per qualche motivo/etc/rc0.d/S31umountnfs.sh (problemi di rete per esempio) il montaggio automatico durante l'avvio non funziona, puoi aggiungere il parametro "noauto" alla voce fstab di smbfs e quindi far montare la condivisione in Accedere.

In /etc/fstab:

//servername/sharename  /media/windowsshare  cifs  noauto,credentials=/home/ubuntuusername/.smbpasswd  0  0

In /etc/rc.local:

mount /media/windowsshare
exit 0

Spegnimento lento a causa di un bug CIFS/Network Manager

Se usi Network Manager e ricevi arresti molto lenti, è probabilmente perché NM si spegne prima di smontare le condivisioni di rete. Ciò farà sì che CIFS si blocchi e attenda circa 60 secondi. Ecco come risolverlo:/etc/rc0.d/S31umountnfs.sh

sudo ln -s /etc/init.d/umountnfs.sh /etc/rc0.d/K14umountnfs.sh
sudo ln -s /etc/init.d/umountnfs.sh /etc/rc6.d/K14umountnfs.sh

Ubuntu 12.04 esegue già umountnfs.sh al riavvio e allo spegnimento per impostazione predefinita (/etc/rc0.d/S31umountnfs.sh e /etc/rc6.d/S31umountnfs.sh), quindi non è più necessario.

Opzioni CIFS obsolete

20 febbraio 2008 TW

L'uso di dmask o fmask nel file fstab produce i seguenti avvisi:ATTENZIONE:l'opzione di montaggio CIFS 'dmask' è deprecata. Usa invece 'dir_mode'. ATTENZIONE:l'opzione di montaggio CIFS 'fmask' è deprecata. Usa invece 'file_mode'.

Usa invece questo formato:file_mode=0777,dir_mode=0777 . O in alcuni casi potresti dover usare file_mode=0777,dir_mode=0777,nounix (vedi discussione)

Uso di tilde in nomi di percorso come “credentials=~/.smbcredentials”

20 febbraio 2008 TW

Curiosamente, l'utilizzo di credenziali=~/.smbcredentials in fstab non ha funzionato. Ho dovuto usare il percorso completo, ovvero /home/username/.smbcredentials

(Ciò è probabile perché la tilde "~" è solo un alias abbreviato della shell per "$HOME"; non è qualcosa di riconosciuto a livello di sistema da tutti i programmi, specialmente non in una tabella di file di sistema in cui il concetto di "HOME "non esiste davvero. -Ian!)

Elementi storici (versioni precedenti di Ubuntu)

Monta condivisioni protette da password usando libpam_mount (Ubuntu 9.04)

Oltre alle ipotesi iniziali, assumiamo che

  • Il tuo nome utente e password sono gli stessi sulla macchina Ubuntu e sull'unità di rete.

Installa libpam-mount:

sudo apt-get install libpam-mount

Modifica /etc/security/pam_mount.conf.xml usando il tuo editor di testo preferito.

gksudo gedit /etc/security/pam_mount.conf.xml

Innanzitutto, spostiamo i bit di configurazione specifici dell'utente in un file che gli utenti possono effettivamente modificare da soli:rimuovere i tag di commento () che circondano la sezione denominata . Salva il file quando hai finito. Con questo in atto, gli utenti possono creare il proprio ~/.pam_mount.conf.xml.

gedit ~/.pam_mount.conf.xml

Aggiungi quanto segue:

<?xml version="1.0" encoding="utf-8" ?>

<pam_mount>

<volume options="uid=%(USER),gid=100,dmask=0700" user="*" mountpoint="/media/windowsshare" path="sharename" server="servername" fstype="cifs" />

</pam_mount>

Il materiale in questo post è disponibile con una licenza gratuita, vedi Copyright/Licenza per i dettagli.


Linux
  1. Come utilizzare autofs per montare condivisioni NFS

  2. Come modificare il file dei tuoi host in Windows 10

  3. Come abilitare le autorizzazioni dei file Unix su Samba Share con Smb 2.0+?

  4. copiare il file da Windows a Linux

  5. Come montare un file ISO in Linux?

Come montare Windows Share su Linux usando CIFS

Come montare file ISO su Linux

Come configurare Samba File Sharing Server su Ubuntu

Come convertire un file Windows in un file UNIX

Come montare il disco NTFS su Linux

Condivisione file di Windows Samba