cifs, smb - Impossibile montare (autorizzazione negata) o navigare nella cartella condivisa


13

Di recente ho riscontrato questo problema. Di solito navigo attraverso una cartella condivisa di rete locale da una macchina Linux via smb (cioè dal gestore di file usando smb:). Ora, ogni volta che provo ad accedere al collegamento o a digitare nuovamente le credenziali, continuo a visualizzare la finestra di dialogo che richiede utente, dominio e password.

Quindi ho provato a montare manualmente la posizione usando cisf-utils facendo:

sudo mount -t cifs //fileshare1/docs1/user/My\ Documents/shared/Francesco/ /home/frank/used_shared/ -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Ho capito mount error(13): Permission denied.

Sono sicuramente sicuro che il mio utente disponga dell'autorizzazione per quella cartella perché posso accedervi da un computer Windows.

Anche se provo a montare la mia cartella personale su quella posizione attraverso:

sudo mount -t cifs //fileshare1/docs5/francesco.azzarello/ /home/frank/mnt_folder -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Posso accedervi senza problemi.

Per riferimento sto usando il kernel 4.2.0-36-generico e la mia versione mount.cifs è 6.4

Qualche idea su come far funzionare uno di entrambi i metodi?


Aggiorna la risposta Rgarding ponsfrilus

numero 1: l'opzione dettagliata restituisce:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,uid=1000,gid=1000,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

Il numero 2 è sostanzialmente la stessa cosa:

_ mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

E nulla è cambiato con vers = 2.1:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,vers=2.1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

Per quanto riguarda il numero 4, posso montare docs1 senza alcun problema, ma posso navigare per accedere alla cartella condivisa dell'utente.


Prova il suggerimento n. 3 di ponsfrilus con vers=3.0, forse anche vers=2.0o vers=1.0. Se questo non funziona, forse puoi consentire al server di connettersi a una gamma più ampia di versioni smb. Ho avuto questo problema da solo perché smb3 era impostato sul server come richiesto. Non sono riuscito a connettermi con Linux fino a quando il server non ha abbassato la versione di samba richiesta a 2. Quale sistema operativo esegue il server?
emk2203,

2
Li ho provati tutti. Ricevo ancora "permesso negato" con 3.0, 2.1 e 2.0. Mentre ottengo un "errore sconosciuto" con 1.0. Non so come controllare la versione di Windows Server come utente poiché non ho accesso diretto ad essa.
Frankmtl,

Non posso aiutarti, scusami. Avevo il controllo del server e il mio problema è scomparso dopo aver rilassato le versioni SMB consentite. È possibile connettersi alla propria condivisione - improbabile configurazione errata di Linux; è possibile connettersi tramite Windows per condividere - improbabile configurazione errata del server. Questo richiede un vero guru della samba.
emk2203,

Risposte:


10

Sono abbastanza sicuro di essermi imbattuto nello stesso identico problema oggi su Ubuntu 16.10 Ho provato tutti i suggerimenti in questo thread più volte, ho potuto montare la stessa condivisione esatta usando Windows Server 2016 e ho potuto sfogliarlo usando smbclient ( smbclient -U brainstrust //WINBOX01/shared). Ho anche provato un file di credenziali esterne.

Ho finito per inciampare in una correzione - anche se avevo creato un utente locale per la condivisione sulla finestra di Windows, era anche unito a un dominio. Fondamentalmente l'impostazione del dominio come macchina locale ha -o domain=WINBOX01risolto il mio problema all'istante, quindi lasciare un commento qui nella speranza che sia utile a qualcuno là fuori.

Il comando minimo completo che ho usato era:

sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01  --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01

Grazie per aver lasciato questo commento qui, mi ha aiutato.
Dleerob,

Aiutato anche me Sembra che mount -t cifs soffra dello stesso problema
Terminalità

Questo è quello che si è rivelato essere il mio problema. Ho già avuto un ~/.smbcredentialsfile. Sono inorridito nello scoprire che il mio NAS locale mi ha permesso di montare la condivisione con una password errata per molto tempo.
Charlie

Stranamente, dovevamo specificare il nome NetBIOS del dominio, non il nome host del fileserver. Tuttavia, ora funziona, grazie mille.
bviktor

9

Penso che tu abbia il tipo di sicurezza sbagliato per il server, l'errore 13 indica che il server non ti sta facendo entrare.

Dovrai selezionare la giusta modalità di sicurezza nel comando mount e aggiungere un'opzione sec tramite -o come segue:

sec=
   Security mode. Allowed values are:
   ·   none - attempt to connection as a null user (no name)
   ·   krb5 - Use Kerberos version 5 authentication
   ·   krb5i - Use Kerberos authentication and forcibly enable packet 
       signing
   ·   ntlm - Use NTLM password hashing
   ·   ntlmi - Use NTLM password hashing and force packet signing
   ·   ntlmv2 - Use NTLMv2 password hashing
   ·   ntlmv2i - Use NTLMv2 password hashing and force packet signing
   ·   ntlmssp - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message
   ·   ntlmsspi - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message, and force packet signing

1
Ho provato tutti loro e ricevo "permesso negato" o "errore sconosciuto" a seconda del tipo sec
Frankmtl

dati tutti i recenti problemi di sicurezza con SMB, consiglierei di usarlo solo quando sono in atto molte misure di sicurezza aggiuntive, come un controllo antivirus molto aggiornato.
Amias,

Prova a usare sec = ntlmssp e assicurati che il tuo server samba config crittografa la password.
Humpity

Mi ha salvato la giornata. In realtà quello che ho fatto è stato semplicemente rimuovere sec = ntlm e poi ha funzionato.
Chuckedw

In questi giorni dovresti davvero allontanarti dalle PMI, è una fonte quasi costante di attacchi e escalation di privilegi.
Amias,

4
  1. Prova ad aggiungere l'opzione "-v" per ottenere un output dettagliato:

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o \
       username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000
    
  2. Prova con queste opzioni per il comando mount

    iocharset = utf8, rw, file_mode = 0777, dir_mode = 0777 :

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o 
       username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    
  3. Prova specificando l'opzione versione SMB (vers = 2.1), vedi il wiki di samba . Dalla pagina man mount.cifs:

    vers =
    versione del protocollo SMB. I valori consentiti sono:

    • 1.0 - Il classico protocollo CIFS / SMBv1. Questo è il valore predefinito.

    • 2.0 - Il protocollo SMBv2.002. Questo è stato inizialmente introdotto in Windows Vista Service Pack 1 e Windows Server 2008. Nota che la versione iniziale di Windows Vista parlava un dialetto leggermente diverso (2.000) che non è supportato.

    • 2.1 - Il protocollo SMBv2.1 che è stato introdotto in Microsoft Windows 7 e Windows Server 2008R2.

    • 3.0 - Il protocollo SMBv3.0 introdotto in Microsoft Windows 8 e Windows Server 2012.

  4. Infine, prova a montare solo la prima condivisione:

    sudo mount -v -t cifs //fileshare1/docs1/ /home/frank/mnt_folder \
       -o username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    

Qualsiasi output dettagliato che puoi condividere potrebbe aiutare.


Grazie per la tua risposta Non ho trovato un modo migliore per ripetere se non aggiornare la domanda. puoi trovare gli output di questi comandi nell'aggiornamento
Frankmtl,

@Frankmtl puoi confrontare i diritti delle cartelle all'interno di filess1 docs1 e docs5?
ponsfrilus,

Scusa per il ritardo della risposta. Se intendi i permessi delle cartelle dopo averli montati, entrambi hanno drwxr-xr-x
Frankmtl,

Per accedere a una condivisione server Windows 2012 (smb2), è necessario aggiungere ,vers=2.1 dopo uid = 1000 (ovvero fine della linea). Ho installato anche il pacchetto "cifs-utils".
laugeo,

2

Per questo problema quando si usano cifs superiori a 6.0: la nuova versione di cifs usa invece la variabile domain, quindi il file creadentials appare come:

username=<your username>
password=<your password>
domain=<your domain>

La soluzione per me era davvero senza spazi prima e dopo =.
WM,

2

L'aggiunta dell'opzione sec=ntlmal comando mount ha risolto il mio problema.

per esempio:

sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.