cifs, smb - Kann nicht gemountet (Berechtigung verweigert) oder im freigegebenen Ordner navigieren

12

Ich bin kürzlich auf dieses Problem gestoßen. Normalerweise navigiere ich von einem Linux-Computer über smb (dh vom Dateimanager mit smb :) durch einen freigegebenen lokalen Netzwerkordner. Immer wenn ich versuche, erneut auf die Verknüpfung zuzugreifen oder Anmeldeinformationen einzugeben, wird im Dialogfeld nach Benutzer, Domäne und Kennwort gefragt.

Also habe ich versucht, den Speicherort manuell mit cisf-utils zu mounten.

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

Ich verstehe mount error(13): Permission denied.

Ich bin mir sicher, dass mein Benutzer die Berechtigung für diesen Ordner hat, da ich von einem Windows-Computer aus darauf zugreifen kann.

Auch wenn ich versuche, meinen persönlichen Ordner an diesem Speicherort bereitzustellen:

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

Ich kann problemlos darauf zugreifen.

Als Referenz verwende ich den 4.2.0-36-generischen Kernel und meine mount.cifs-Version ist 6.4

Haben Sie eine Idee, wie eine der beiden Methoden funktioniert?


Aktualisieren Sie die Antwort von Rgarding ponsfrilus

Nummer 1: Ausführliche Option gibt zurück:

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

Nummer 2 ist im Grunde das Gleiche:

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

Und mit vers = 2.1 hat sich nichts geändert:

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

Was Nummer 4 betrifft, kann ich docs1 problemlos bereitstellen, aber ich kann navigieren, um zum freigegebenen Ordner im Benutzer zu gelangen.

Frankmtl
quelle
Probieren Sie Ponsfrilus 'Tipp Nr. 3 mit vers=3.0, vielleicht auch vers=2.0oder vers=1.0. Wenn dies nicht funktioniert, können Sie dem Server möglicherweise eine größere Anzahl von SMB-Versionen für die Verbindung zulassen. Ich hatte dieses Problem selbst, weil smb3 wie erforderlich auf dem Server eingestellt war. Ich konnte keine Verbindung mit Linux herstellen, bis der Server die erforderliche Samba-Version auf 2 gesenkt hatte. Welches Betriebssystem läuft auf dem Server?
Emk2203
2
Ich habe sie alle ausprobiert. Ich bekomme immer noch "Erlaubnis verweigert" mit 3.0, 2.1 und 2.0. Während ich mit 1.0 "unbekannter Fehler" bekomme. Ich weiß nicht, wie ich die Windows Server-Version als Benutzer überprüfen soll, da ich keinen direkten Zugriff darauf habe.
Frankmtl
Kann dir da nicht helfen, sorry. Ich hatte die Kontrolle über den Server und mein Problem verschwand, nachdem ich die erlaubten SMB-Versionen gelockert hatte. Sie können eine Verbindung zu Ihrer eigenen Freigabe herstellen - eine Fehlkonfiguration des Linux ist unwahrscheinlich. Sie können über Windows eine Verbindung zur Freigabe herstellen - eine Fehlkonfiguration des Servers ist unwahrscheinlich. Dies erfordert einen echten Samba-Guru.
Emk2203

Antworten:

10

Ich bin mir ziemlich sicher, dass ich heute unter Ubuntu 16.10 auf genau dasselbe Problem gestoßen bin. Ich habe alle Vorschläge in diesem Thread mehrmals ausprobiert. Ich konnte genau dieselbe Freigabe mit Windows Server 2016 bereitstellen und sie mit smbclient ( smbclient -U brainstrust //WINBOX01/shared) durchsuchen . Ich habe sogar eine externe Anmeldeinformationsdatei ausprobiert.

Am Ende bin ich auf ein Update gestoßen - obwohl ich einen lokalen Benutzer für die Freigabe auf der Windows-Box erstellt hatte, wurde diese auch einer Domäne hinzugefügt. Grundsätzlich wurde -o domain=WINBOX01mein Problem sofort behoben, indem die Domain als lokaler Computer festgelegt wurde. Daher hinterließ ich hier einen Kommentar in der Hoffnung, dass er für jemanden da draußen nützlich ist.

Der vollständige Minimalbefehl, den ich verwendet habe, war:

sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01  --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01
Geoff Williams
quelle
Vielen Dank, dass Sie diesen Kommentar hier hinterlassen haben. Er hat mir geholfen.
Dleerob
Hat mir auch geholfen. Es scheint, dass mount -t cifs unter dem gleichen Problem leidet
Terminality
Dies stellte sich als mein Problem heraus. Ich hatte bereits eine ~/.smbcredentialsDatei. Ich bin entsetzt, als ich herausfinde, dass mein lokaler NAS es mir ermöglicht hat, die Freigabe für eine sehr lange Zeit mit einem falschen Passwort bereitzustellen.
Charlie
Seltsamerweise mussten wir den NetBIOS-Namen der Domäne angeben, nicht den Hostnamen des Dateiservers. Trotzdem funktioniert es jetzt, vielen Dank.
Bviktor
9

Ich denke, Sie haben den falschen Sicherheitstyp für den Server. Fehler 13 bedeutet, dass der Server Sie nicht hereinlässt.

Sie müssen den richtigen Sicherheitsmodus in Ihrem Mount-Befehl auswählen und eine Sek-Option über -o wie folgt hinzufügen:

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
quelle
1
Ich habe alle ausprobiert und erhalte je nach Sek. Typ "Erlaubnis verweigert" oder "Unbekannter Fehler"
Frankmtl
Angesichts der jüngsten Sicherheitsprobleme mit KMU würde ich raten, es nur dort zu verwenden, wo viele zusätzliche Sicherheitsmaßnahmen vorhanden sind, z. B. eine sehr aktuelle Virenprüfung.
Amias
Versuchen Sie es mit sec = ntlmssp und stellen Sie sicher, dass Ihre Samba-Serverkonfiguration das Passwort verschlüsselt.
Humpity
Hat meinen Tag gerettet. Eigentlich habe ich nur das sec = ntlm entfernt und dann hat es funktioniert.
chuckedw
Sie sollten sich heutzutage wirklich von SMB entfernen, da dies eine nahezu ständige Quelle für Angriffe und die Eskalation von Privilegien ist.
Amias vor
4
  1. Versuchen Sie, die Option "-v" hinzuzufügen, um eine ausführliche Ausgabe zu erhalten:

    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. Testen Sie mit diesen Optionen den Befehl 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. Testen Sie die Angabe der SMB-Versionsoption (vers = 2.1), siehe Samba-Wiki . Auf der Manpage mount.cifs:

    vers =
    SMB-Protokollversion. Zulässige Werte sind:

    • 1.0 - Das klassische CIFS / SMBv1-Protokoll. Dies ist die Standardeinstellung.

    • 2.0 - Das SMBv2.002-Protokoll. Dies wurde ursprünglich in Windows Vista Service Pack 1 und Windows Server 2008 eingeführt. Beachten Sie, dass die Erstversion von Windows Vista einen etwas anderen Dialekt (2.000) sprach, der nicht unterstützt wird.

    • 2.1 - Das SMBv2.1-Protokoll, das in Microsoft Windows 7 und Windows Server 2008R2 eingeführt wurde.

    • 3.0 - Das SMBv3.0-Protokoll, das in Microsoft Windows 8 und Windows Server 2012 eingeführt wurde.

  4. Versuchen Sie schließlich, nur die erste Freigabe bereitzustellen:

    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
    

Jede ausführliche Ausgabe, die Sie teilen können, kann hilfreich sein.

Ponsfrilus
quelle
Vielen Dank für Ihre Antwort. Ich habe keinen besseren Weg gefunden, als die Frage zu aktualisieren. Sie finden die Ausgaben dieser Befehle im Update
Frankmtl
@Frankmtl können Sie die Ordnerrechte in docs1 und docs5 fileshare1 vergleichen?
Ponsfrilus
Entschuldigung für die späte Antwort. Wenn Sie die Ordnerberechtigungen meinen, nachdem ich sie gemountet habe, haben beide drwxr-xr-x
Frankmtl
Um auf eine Windows 2012-Serverfreigabe (smb2) zuzugreifen, müssen Sie ,vers=2.1 nach uid = 1000 (auch als Zeilenende bezeichnet) hinzufügen . Ich habe auch das Paket "cifs-utils" installiert.
Laugeo
2

Das Hinzufügen der Option sec=ntlmzum Befehl mount hat mein Problem behoben.

z.B:

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

Für dieses Problem bei Verwendung von CIFs höher als 6.0: Neue CIF-Versionen verwenden stattdessen die Domänenvariable, sodass die Creadentials-Datei wie folgt aussieht:

username=<your username>
password=<your password>
domain=<your domain>
Mach Manh Tien
quelle