Ich versuche, eine NetApp CIFS-Freigabe auf einem unserer Server bereitzustellen, und ich bekomme immer wieder "Berechtigung verweigert" auf stderr NT_STATUS_WRONG_PASSWORD
gedruckt und auf die Ausführung gedruckt dmesg
.
root@xxxehpvld05 ~ $ mount.cifs -vv //zhp-nas.xxx.com/perspectives /mnt/secure/cifs -o credentials=/etc/cifs.creds
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
root@xxxehpvld05 ~ $ dmesg | tail
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Der smbclient
Befehl funktioniert jedoch ohne Probleme mit derselben exakten Anmeldeinformationsdatei:
root@xxxehpvld05 ~ $ smbclient -L //zhp-nas.xxx.com/perspectives -A /etc/cifs.creds
Domain=[XXX] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
IPC$ IPC Remote IPC
ZHPSubmit-dev Disk
[...snip...]
Es scheint, als ob das eine funktioniert, sollte das andere auch funktionieren, zumal die Anmeldeinformationsdatei auch den Domänennamen angibt.
cifs-utils
Paket (Debian) installiert und es hat das Problem behoben. Ich habe ein bisschen damit verbracht, dies zu debuggen, weil ich keine Unterstützung erwartet hatte , ohne dass das Paket installiert worden war, also nahm ich an, dass dies der Fall war. Ich hatte so etwas wie "unbekanntes Dateisystem" von mount erwartet, aber das ist nicht passiert.Antworten:
Ohne weitere Informationen kann ich nicht sicher sagen, aber ich habe dieses Problem beim Herstellen einer Verbindung zu einem älteren Windows-Server gesehen, auf dem eine ältere Protokollversion ausgeführt wurde. Denken Sie daran, dass CIFS als "Dialekt" (Typ) von KMU betrachtet wird. Es gibt andere Typen und ältere Setups verwenden kein CIFS.
Im Grunde ist es so, als würden zwei Leute sprechen. Ein Spanisch und ein Englisch, und Sie versuchen, den englischen Sprecher zu zwingen, Spanisch zu verstehen, wenn er dies eindeutig nicht tut.
SMBclient verwendet für Sicherheitsverhandlungen ein anderes Dielektrikum. (oder zumindest anders erkennt).
Versuchen
und sehen, was passiert. (sec = ntlm ist der wichtige Teil)
quelle
ntlm
oderntlmv2
. Ich bin mir nicht sicher, wie ich das Problem beheben soll. Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen und ich werde die Frage aktualisieren. Könnte es auf der NetApp-Seite einige Zugriffskontrollen geben, die der SAN-Typ übersehen hat?Beim Herumspielen mit den Befehlen habe ich einen möglichen Grund gefunden:
Aus der Manpage von smbclient:
Aus der Manpage von mount.cifs:
Dann habe ich zwei Anmeldeinformationsdateien erstellt, eine mit Leerzeichen, wie im ersten Snippet gezeigt, und eine ohne und benannte sie
creds
undcreds.spacy
.Der große Showdown:
Mit
creds
Datei:Gute Stille, keine Fehler.
Mit
creds.spacy
Datei:Ihre Anmeldeinformationsdatei enthält also offensichtlich Leerzeichen, die von mount.cifs nicht verstanden werden.
Außerdem spielt
smbclient
es keine Rolle, ob Leerzeichen vorhanden sind.creds
undcreds.spacy
verursachte kein Auerhahn.quelle
smbclient
, schlägt aber fehlmount.cifs
. Nachdem ich die Reihenfolge in die richtige geändert hatte, wie in der hier zitierten Dokumentation angegeben, funktionierte sie. Scheint, als ob diese (sowohl die falsche Behandlung von Leerzeichen als auch das Bestellproblem) schreckliche Fehler sind, die von jedem, der sie pflegt, leicht behoben werden solltenmount.cifs
.Das Hinzufügen von sec = ntlm hat das Problem für mich behoben. Ich habe ein älteres NAS (Netgear Stora). Die Standardsicherheit für cifs in aktuellen Kerneln ist ntlmssp
quelle
Eine andere Möglichkeit, die ich heute beim Versuch, eine Freigabe bereitzustellen, entdeckt habe, besteht darin, dass
smbmount
dieusername=DOMAIN\\user
Syntax unterstützt wird, einen Benutzer in einer Domäne als Berechtigungsnachweis anzugeben.Damit
mount.cifs
(undmount -t cifs
) funktionieren, müssen diese beiden separat bereitgestellt werden :-o username=user,password=pass,dom=DOMAIN
.quelle
sec=ntlm
unddom=DOMAIN
Wie user55518 erklärt hat, haben Sie wahrscheinlich Leerzeichen in Ihrer Anmeldeinformationsdatei, auch wenn Sie diese nicht sehen. Wenn Sie Ihre Anmeldeinformationsdatei unter Windows bearbeitet haben, haben Sie wahrscheinlich
\r
am Ende Ihrer Zeilen und das löst den Fehler 13 aus.quelle
Ich möchte euch allen danken !!! Für dieses Problem hat es mir sehr geholfen! Außerdem habe ich einige wichtige Informationen über den Parameter "sec = ntlm" gefunden. Ich verlasse den Link, wenn einige von Ihnen daran interessiert sind, Zeilen unten:
Microsoft NTLM
Ich habe versucht, ein Freigabeverzeichnis von Windows 7 Desktop zu mounten, aber es war unmöglich, den Parameter "sec = ntlm" hinzuzufügen, und es funktioniert, und einige wichtige Details könnten sein, dass ich nicht berücksichtigt habe, dass mein Windows 7-Desktop in einem ist Domain, also denke ich, es war das wichtigste Detail, das ich berücksichtigen sollte. deshalb funktioniert es!, wirklich vielen Dank euch allen!, Segen !! und gute Stimmung! : D.
quelle
In meinem Fall musste ich nur die Option hinzufügen
vers=3.0
(CIFS war Version 1, die seit Kernel 4.13 nicht mehr unterstützt wird, also habe ich auf dem Server direkt zu SMBv3 gewechselt) und musste trotzdem neu starten, damit es funktioniert Mount Line in/etc/fstab
jetzt:Meine Anmeldeinformationsdatei:
Eigentlich wird
domain
es nicht benötigt, aber es ist die richtige Option, um es jetzt gemäß der Manpage mount.cifs zu verwenden.quelle
Ich habe eine Weile damit zu kämpfen.
Mit folgenden Fehlern:
hier hat es geholfen, die Option vers = 1.0 zu setzen, dann wurde berichtet
und es stellte sich heraus, dass es sich um zusätzliche "Zeichen in meiner Anmeldeinformationsdatei handelte
wo ich ursprünglich hatte:
wo es sein sollte
quelle