web-dev-qa-db-ja.com

cifsのマウント:「操作はサポートされていません」

同様の質問 とは異なり、smbclientでさえ接続できません。

Samba共有はWindowsで正常に機能し、自動的に機能しますが、Linuxではまったくマウントできず、エラーメッセージはせいぜい暗号です。ここに私の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

エラーメッセージは次のとおりです。

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

まったく役に立たないメッセージ。

デバッグが有効な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

私はさまざまなことを試しました-secオプション---すべて失敗し、すべて同じエラーメッセージが表示されます。 smbclientも役に立ちません:

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

これはWindowsではどのように機能しますが、Linuxではまったく機能しませんか?

17
paul

OK「私」はそれを理解しました-何らかの理由で、「vers = 3.0」を追加すると機能します。これなしで問題が発生した理由、または機能する理由がわかりません。しかし、他の人がfreenasセットアップでこの問題を抱えている場合は、将来の参考のために。

9
paul

@Kenと@Paulからの回答を入力するには:SMBバージョンは、v1より高い場合に指定する必要があります。

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

Linux cifsカーネルクライアントは、2.5.42以降、カーネルに含まれています。 cifsプロトコル(および関連する以前のSMB方言)がデフォルト( "vers = 1.0")ですが、新しい方言(SMB2.02、SMB2.1およびSMB3およびSMB3.02)のサポートにより、マウント時に「vers = 2.0」、「vers = 2.1」、「vers = 3.0」、または「vers = 3.02」を指定して選択- https://wiki.samba.org/index.php/ LinuxCIFSKernel

Smbclientの場合、呪文は-m, --max-protocol=LEVELです。

smblcient -L server -U username -m SMB2

Smbclientに許可されているレベルのリストが見つかりませんでした。 this thread のMarc Muehlfeldによると、Windowsで使用されているバージョンは次のとおりです。

  • SMB 2.0はVista/2008で導入されました
  • Win7/2008R2によるSMB 2.1
  • Win8/2012によってSMB 2.2(別名3.0)
  • 8.1/2012R2によるSMB 3.02

いくつかの異なるmountエラーメッセージがあり、一致しないプロトコルレベルまで追跡できます。完全ではないリスト(回答を編集してさらに追加してください):

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

最後に、オプションsec=ntlmv2を使用するためによく引用されるアドバイスを示すコメントをいくつか見ました。したがって、少なくともsecversを混ぜて一致させないことをお勧めします。

14
matt wilkie

私はこれを1か月以上戦っています。クライアントがXenserver 6.2および6.5の場合、CIFSを介してISOディレクトリをマウントできません。

Vers = 3.0がようやく機能しました。

このオプションはどこで見つけましたか?

私のドメインはWindows 2012 R2です。私はレジストリの認証要件を下げませんでした-それらはすべてデフォルトのままです(これを見つけたとき、私はちょうどそれを広く開くつもりでした)。

Sec =設定をまったく指定する必要はありませんでした。

DIDドメインを指定する必要があります。ドメインを大文字で指定しました-必要ないかもしれません。

私のコマンドが続きます。

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

次に、認証にオプションを追加する方法を理解します。

ポールに感謝します。

5
Ken Finch

FreeNasを使用すると、より安全な共有を設定できます。最も低いWindowsセキュリティプロトコル(Windows NT 4.0)を許可すると、Sambaで動作します。それが設定されている場合は、Windows XPプロトコルと上記のように、40分間のFreeNas接続とCentOS 7の取得に苦労した後、私が発見したvers = 3.0を再度必要とします。問題はクライアントです。 (およびGUI)は、最も高いバージョンをチェックダウンする必要があります。代わりに、利用可能な最も低いバージョンからチェックします。一度は意味があったかもしれませんが、大幅に変更されています。Gnomeでは、使用するためのオプションを追加できないことは特に不愉快だと思いますCIFSまたはセキュリティプロトコルのバージョンを指定するためのものだと思いますが、これらのユーザーにとってはコマンドラインか、何もないように見えますが、これによりLinuxがデスクトップで広く使用されるのを防ぐことができます。

0
Jonah Libster