Mounten von CIFs: "Operation nicht unterstützt"

16

Im Gegensatz zu der ähnlichen Frage kann ich mich nicht einmal mit smbclient verbinden.

Die Samba-Freigabe funktioniert gut unter Windows und automatisch, aber unter Linux kann ich sie überhaupt nicht mounten und die Fehlermeldung ist bestenfalls kryptisch. Hier ist meine samba.conf:

[global]
    dos charset = CP437
    netbios name = REDACTED
    server string = Lab
    server role = standalone server
    map to guest = Bad User
    obey pam restrictions = Yes
    smb passwd file = /var/etc/private/smbpasswd
    private dir = /var/etc/private
    max log size = 51200
    server min protocol = SMB2
    time server = Yes
    deadtime = 15
    max open files = 11070
    hostname lookups = Yes
    load printers = No
    printcap name = /dev/null
    disable spoolss = Yes
    dns proxy = No
    pid directory = /var/run/samba
    panic action = /usr/local/libexec/samba/samba-backtrace
    idmap config * : backend = tdb
    acl allow execute always = Yes
    create mask = 0666
    directory mask = 0777
    directory name cache size = 0
    kernel change notify = No
    map archive = No
    map readonly = no
    store dos attributes = Yes
    strict locking = No

[common]
    comment = Lab Common share
    path = /mnt/pool/common
    read only = No
    inherit acls = Yes
    hosts allow = XXX.XXX.XX.X/24, XXX.XX.XX.X/24 <-- redacted
    hide dot files = No
    veto files = /.snap/.windows/.zfs/
    vfs objects = zfsacl, streams_xattr, aio_pthread
    zfsacl:acesort = dontcare
    nfs4:chown = yes
    nfs4:acedup = merge
    nfs4:mode = special
    recycle:subdir_mode = 0700
    recycle:directory_mode = 0777
    recycle:touch = yes
    recycle:versions = yes
    recycle:keeptree = yes
    recycle:repository = .recycle/%U

Die Fehlermeldung lautet:

[as@localhost ~]$ sudo mount -t cifs -o username=removed,password=removed  //server.ip.address/common /media/windowsshare/
mount error(95): Operation not supported

Eine vollkommen nutzlose Nachricht.

Das debug-fähige dmesg:

[237179.795551] fs/cifs/cifsfs.c: Devname: //132.239.27.172/common flags: 0
[237179.795563] fs/cifs/connect.c: Username: lauria
[237179.795565] fs/cifs/connect.c: file mode: 0x1ed  dir mode: 0x1ed
[237179.795600] fs/cifs/connect.c: CIFS VFS: in cifs_mount as Xid: 44 with uid: 0
[237179.795600] fs/cifs/connect.c: UNC: \\132.239.27.172\common
[237179.795605] fs/cifs/connect.c: Socket created
[237179.795606] fs/cifs/connect.c: sndbuf 16384 rcvbuf 87380 rcvtimeo 0x1b58
[237179.795897] fs/cifs/fscache.c: cifs_fscache_get_client_cookie: (0xffff8803e0aa4800/0xffff880035d25580)
[237179.795898] fs/cifs/connect.c: Demultiplex PID: 25817
[237179.795902] fs/cifs/connect.c: CIFS VFS: in cifs_get_smb_ses as Xid: 45 with uid: 0
[237179.795903] fs/cifs/connect.c: Existing smb sess not found
[237179.795907] fs/cifs/cifssmb.c: Requesting extended security.
[237179.795910] fs/cifs/transport.c: For smb_command 114
[237179.795912] fs/cifs/transport.c: Sending smb: smb_len=78
[237179.801062] fs/cifs/connect.c: RFC1002 header 0x25
[237179.801067] fs/cifs/misc.c: checkSMB Length: 0x29, smb_buf_length: 0x25
[237179.801090] fs/cifs/transport.c: cifs_sync_mid_result: cmd=114 mid=1 state=4
[237179.801093] fs/cifs/cifssmb.c: Dialect: 65535
[237179.801094] fs/cifs/cifssmb.c: negprot rc -95
[237179.801097] fs/cifs/connect.c: CIFS VFS: leaving cifs_get_smb_ses (xid = 45) rc = -95
[237179.801100] fs/cifs/fscache.c: cifs_fscache_release_client_cookie: (0xffff8803e0aa4800/0xffff880035d25580)
[237179.801262] fs/cifs/connect.c: CIFS VFS: leaving cifs_mount (xid = 44) rc = -95
[237179.801263] CIFS VFS: cifs_mount failed w/return code = -95

Ich habe viele verschiedene -secOptionen ausprobiert - alle scheitern, alle haben die gleiche Fehlermeldung. smbclient ist auch nicht hilfreich:

smbclient //132.239.27.172/common -U username%password
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

Wie funktioniert das unter Windows, aber überhaupt nicht unter Linux?

paul
quelle

Antworten:

13

So füllen Sie die Antworten von @Ken und @Paul aus: Die SMB-Version muss höher als v1 angegeben werden:

mount -t cifs \
  -o username=USERNAME,vers=3.0 \
  //server/share \
  /mnt/point

Der Linux cifs-Kernel-Client ist seit 2.5.42 im Kernel enthalten. Das cifs-Protokoll (und verwandte frühere SMB-Dialekte) ist die Standardeinstellung ("vers = 1.0"), aber die Unterstützung für neuere Dialekte (SMB2.02, SMB2.1 und SMB3 und SMB3.02) kann durch Angabe von "vers = 2.0" ausgewählt werden. oder "vers = 2.1" oder "vers = 3.0" oder "vers = 3.02" beim Einhängen. - https://wiki.samba.org/index.php/LinuxCIFSKernel

Für smbclient ist die Beschwörung -m, --max-protocol=LEVEL:

smblcient -L server -U username -m SMB2

Ich habe keine Liste der erlaubten Levels für smbclient gefunden. Laut Marc Muehlfeld in diesem Thread werden von Windows folgende Versionen verwendet:

  • SMB 2.0 wurde von Vista / 2008 eingeführt
  • SMB 2.1 von Win7 / 2008R2
  • SMB 2.2 aka 3.0 von Win8 / 2012
  • SMB 3.02 bis 8.1 / 2012R2

Es gibt verschiedene mountFehlermeldungen, die auf nicht übereinstimmende Protokollebenen zurückgeführt werden können. Eine nicht vollständige Liste (Sie können die Antwort jederzeit bearbeiten und weitere hinzufügen):

mount error(13): Permission denied
mount error(95): Operation not supported
mount error(121): Remote I/O error

Schließlich habe ich einige Kommentare gesehen, die darauf hinweisen, dass der oft zitierte Rat zur Verwendung der Option sec=ntlmv2und dergleichen nicht mehr befolgt werden sollte. So wahrscheinlich eine gute Idee, zumindest nicht mischen und anzupassen secund vers.

Matt Wilkie
quelle
Es könnte eine neue Maschine sein, für die ich vers=3.0nicht gearbeitet vers=3.02habe, aber danke.
Bindestrich
3
Und in meinem Fall war der einzige, den ich zur Arbeit bringen konnte vers=2.0(Ubuntu 18.04)
James T Snell
1
Gleiche Erfahrung mit Ubuntu 18.04; Stellen Sie sicher, dass Sie alle möglichen SMB-Versionen ausprobieren.
Jay Taylor
9

OK "Ich" habe es herausgefunden - aus irgendeinem Grund funktioniert es, wenn "vers = 3.0" hinzugefügt wird. Ich weiß nicht, warum es ohne dies Probleme gab oder warum es funktioniert. aber zum nachschlagen, wenn andere dieses problem mit ihren freenas-einstellungen haben.

paul
quelle
1
Hinzufügen vers=3.0zu was ? Bitte helfen Sie
Khaverim
1
Ich denke, Paul wollte Optionen bereitstellen.
BHS
2
vers=1.0arbeitete für mich
Bilow
5

Ich kämpfe jetzt seit über einem Monat dagegen. Wenn der Client Xenserver 6.2 und 6.5 ist, kann das ISO-Verzeichnis nicht über CIFS eingehängt werden.

Die Vers = 3.0 hat endlich geklappt.

Wo hast du diese Option gefunden ??!

Meine Domain ist Windows 2012 R2. Ich habe die Authentifizierungsanforderungen in der Registrierung nicht gesenkt - sie sind alle immer noch Standard (ich wollte sie gerade weit öffnen, als ich dies fand).

Ich musste überhaupt keine sec = -Einstellung angeben.

Ich musste eine Domain angeben. Ich habe die Domain in Großbuchstaben angegeben - wird jedoch möglicherweise nicht benötigt.

Mein Befehl folgt.

mount -t cifs "//192.168.92.25/shared" -o username=administrator,password=<your_password>,domain=<YOUR DOMAIN IN CAPS>,vers=3\.0 /root/tmp

Nun erfahren Sie, wie Sie der Authentifizierung Optionen hinzufügen.

Danke Paul, wer auch immer du bist.

Ken Finch
quelle
3\.0hat nicht für mich gearbeitet, aber 3.0hat.
trpt4him
0

Mit FreeNas können Sie sicherere Freigaben einrichten. Wenn Sie die niedrigsten Windows-Sicherheitsprotokolle (Windows NT 4.0) zulassen, funktioniert dies mit Samba. Wenn Sie es eingestellt haben, sagen Sie, dass Windows XP-Protokolle und höher Sie die Version = 3.0 benötigen, wie ich herausgefunden habe, nachdem ich 40 Minuten lang gekämpft habe, um die FreeNas-Verbindung mit CentOS 7 herzustellen Version runter. Stattdessen wird von der niedrigsten verfügbaren Version ausgegangen. Es mag einmal Sinn ergeben haben, aber vieles hat sich geändert. Ich finde es besonders ärgerlich, dass Sie in Gnome keine Optionen hinzufügen können, weder für die Verwendung von CIFS noch für die Angabe von Sicherheitsprotokollversionen. Ich denke, sie glauben, dass es sich bei diesen Leuten um eine Befehlszeile oder gar nichts handelt, aber das hindert Linux daran, von Desktop-Benutzern häufiger verwendet zu werden. Das ist wirklich eine Schande.

Jonah Libster
quelle
-1

Klicken Sie unter nas4free auf service -> CIFS / SMB am unteren Bildschirmrand im Feld Additional Parameters

ntlm auth = yes

user352466
quelle
Was ist nas4freeund in welcher Beziehung steht es zur Frage der OP?
jesse_b