cifs, smb - Impossible de monter (autorisation refusée) ou de parcourir le dossier partagé

13

J'ai récemment rencontré ce problème. Je navigue généralement dans un dossier partagé du réseau local à partir d'une machine Linux via smb (c'est-à-dire à partir du gestionnaire de fichiers en utilisant smb:). Maintenant, chaque fois que j'essaie d'accéder au raccourci ou de saisir à nouveau les informations d'identification, je continue à obtenir la fenêtre de dialogue demandant l'utilisateur, le domaine et le mot de passe.

J'ai donc essayé de monter l'emplacement manuellement en utilisant cisf-utils en faisant:

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

Je comprends mount error(13): Permission denied.

Je suis sûr que mon utilisateur a l'autorisation sur ce dossier car je peux y accéder à partir d'une machine Windows.

De plus, si j'essaie de monter mon dossier personnel à cet emplacement via:

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

Je peux y accéder sans problème.

Pour référence, j'utilise un noyau générique 4.2.0-36 et ma version mount.cifs est 6.4

Une idée sur la façon de faire fonctionner l'une des deux méthodes?


Mettre à jour la réponse de Rgarding ponsfrilus

numéro 1: l'option verbeuse renvoie:

_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)_

Le numéro 2 est fondamentalement la même chose:

_ 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)_

Et rien n'a changé avec 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)_

Quant au numéro 4, je peux monter docs1 sans problème, mais je peux naviguer pour accéder au dossier partagé dans l'utilisateur.

Frankmtl
la source
Essayez le conseil n ° 3 de ponsfrilus avec vers=3.0, peut-être aussi vers=2.0ou vers=1.0. Si cela ne fonctionne pas, vous pouvez peut-être autoriser le serveur à se connecter à une plus large gamme de versions smb. J'ai eu ce problème moi-même car smb3 a été défini sur le serveur comme requis. Je n'ai pas pu me connecter avec Linux tant que le serveur n'a pas réduit la version de samba requise à 2. Quel système d'exploitation le serveur exécute-t-il?
emk2203
2
Je les ai tous essayés. J'obtiens toujours "permission refusée" avec 3.0, 2.1 et 2.0. Alors que j'obtiens "erreur inconnue" avec 1.0. Je ne sais pas comment vérifier la version du serveur Windows en tant qu'utilisateur car je n'y ai pas d'accès direct.
Frankmtl
Je ne peux pas vous aider là-dessus, désolé. J'avais le contrôle sur le serveur et mon problème a disparu après avoir assoupli les versions SMB autorisées. Vous pouvez vous connecter à votre propre partage - une mauvaise configuration Linux est peu probable; vous pouvez vous connecter via Windows pour partager - une mauvaise configuration du serveur est peu probable. Cela nécessite un vrai gourou de la samba.
emk2203

Réponses:

10

Je suis presque sûr d'avoir rencontré ce même problème aujourd'hui sur Ubuntu 16.10 J'ai essayé toutes les suggestions de ce fil plusieurs fois, je pouvais monter exactement le même partage en utilisant Windows Server 2016 et je pouvais le parcourir en utilisant smbclient ( smbclient -U brainstrust //WINBOX01/shared). J'ai même essayé un fichier d'informations d'identification externe.

J'ai fini par tomber sur un correctif - bien que j'aie créé un utilisateur local pour le partage sur la boîte Windows, il a également été joint à un domaine. Fondamentalement, définir le domaine pour être la machine locale a -o domain=WINBOX01résolu mon problème instantanément, donc laisser un commentaire ici dans l'espoir que cela soit utile à quelqu'un là-bas.

La commande minimale complète que j'ai utilisée était:

sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01  --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01
Geoff Williams
la source
Merci d'avoir laissé ce commentaire ici, cela m'a aidé.
dleerob
M'a aussi aidé. Il semble que le montage -t cifs souffre du même problème
Terminality
C'est ce qui s'est avéré être mon problème. J'avais déjà un ~/.smbcredentialsdossier. Je suis horrifié de découvrir que mon NAS local m'a laissé monter le partage avec un mauvais mot de passe pendant très longtemps.
Charlie
Curieusement, nous devions spécifier le nom NetBIOS du domaine, pas le nom d'hôte du serveur de fichiers. Néanmoins, cela fonctionne maintenant, merci beaucoup.
bviktor
9

Je pense que vous avez le mauvais type de sécurité pour le serveur, l'erreur 13 signifie que le serveur ne vous laisse pas entrer.

Vous devrez sélectionner le bon mode de sécurité dans votre commande de montage, ajouter une option sec via -o comme suit:

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
Amias
la source
1
J'ai essayé tous et je reçois "permission refusée" ou "erreur inconnue" selon le type de sec
Frankmtl
étant donné tous les problèmes de sécurité récents avec SMB, je vous conseillerais de ne l'utiliser que lorsque de nombreuses mesures de sécurité supplémentaires sont en place, telles qu'une vérification antivirus très à jour.
Amias
Essayez d'utiliser sec = ntlmssp et assurez-vous que la configuration de votre serveur samba chiffre le mot de passe.
Humpity
J'ai sauvé ma journée. En fait, ce que j'ai fait était simplement de supprimer le sec = ntlm, puis cela a fonctionné.
chuckedw
Vous devriez vraiment vous éloigner de SMB ces jours-ci, c'est une source presque constante d'attaques et d'escalade de privilèges.
Amias
4
  1. Essayez d'ajouter l'option "-v" pour obtenir une sortie détaillée:

    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. Testez avec ces options la commande 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. Test spécifiant l'option de version SMB (vers = 2.1), voir le wiki samba . Depuis la page de manuel de mount.cifs:

    vers =
    version du protocole SMB. Les valeurs autorisées sont:

    • 1.0 - Le protocole CIFS / SMBv1 classique. C'est la valeur par défaut.

    • 2.0 - Le protocole SMBv2.002. Cela a été initialement introduit dans Windows Vista Service Pack 1 et Windows Server 2008. Notez que la version initiale de Windows Vista parlait un dialecte légèrement différent (2.000) qui n'est pas pris en charge.

    • 2.1 - Le protocole SMBv2.1 qui a été introduit dans Microsoft Windows 7 et Windows Server 2008R2.

    • 3.0 - Le protocole SMBv3.0 qui a été introduit dans Microsoft Windows 8 et Windows Server 2012.

  4. Enfin, essayez de monter uniquement le premier partage:

    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
    

Toute sortie détaillée que vous pouvez partager pourrait aider.

ponsfrilus
la source
Merci pour votre réponse. Je n'ai pas trouvé de meilleur moyen de rejouer que de mettre à jour la question. vous pouvez trouver les sorties de ces commandes dans la mise à jour
Frankmtl
@Frankmtl pouvez-vous comparer les droits des dossiers dans docs1 et docs5 fileshare1?
ponsfrilus
Désolé pour la réponse tardive. Si vous voulez dire les autorisations de dossier après les avoir montées, elles ont toutes les deux drwxr-xr-x
Frankmtl
Pour accéder à un partage de serveur Windows 2012 (smb2), vous devez ajouter ,vers=2.1 après uid = 1000 (aka fin de ligne). J'ai également installé le package "cifs-utils".
laugeo
2

Pour ce problème lors de l'utilisation de cifs supérieurs à 6.0: la nouvelle version de cifs utilise à la place la variable de domaine, donc le fichier des informations d'identification ressemble à:

username=<your username>
password=<your password>
domain=<your domain>
Do Manh Tien
la source
La solution pour moi était en effet sans espace avant et après =.
WM
2

L'ajout de l'option sec=ntlmà la commande mount a résolu mon problème.

par exemple:

sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/
brike
la source