Mounting cifs: "Operasi tidak didukung"

17

Berbeda dengan pertanyaan serupa , saya bahkan tidak bisa terhubung dengan smbclient.

Samba samba berfungsi dengan baik di windows dan secara otomatis berfungsi, tetapi di Linux saya tidak bisa memasangnya sama sekali dan pesan kesalahannya samar. Ini samba.conf saya:

[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

Pesan kesalahan adalah:

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

Pesan yang sama sekali tidak berguna.

Dmesg yang diaktifkan-debug:

[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

Saya telah mencoba banyak -secopsi berbeda --- semuanya gagal, semuanya memiliki pesan kesalahan yang sama. smbclient juga tidak membantu:

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

Bagaimana cara kerjanya di windows tetapi tidak sama sekali di linux?

paul
sumber

Jawaban:

14

Untuk mengisi jawaban dari @Ken dan @Paul: Versi SMB perlu ditentukan saat lebih tinggi dari v1:

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

Klien kernel Linux cifs telah dimasukkan dalam kernel sejak 2.5.42. Protokol cifs (dan dialek SMB sebelumnya yang terkait) adalah default ("vers = 1.0") tetapi dukungan untuk dialek yang lebih baru (SMB2.02, SMB2.1 dan SMB3 dan SMB3.02) dapat dipilih dengan menentukan "vers = 2.0" atau "vers = 2.1" atau "vers = 3.0" atau "vers = 3.02" saat mount. - https://wiki.samba.org/index.php/LinuxCIFSKernel

Untuk smbclient, mantra adalah -m, --max-protocol=LEVEL:

smblcient -L server -U username -m SMB2

Saya tidak menemukan daftar level yang diizinkan untuk smbclient. Menurut Marc Muehlfeld di utas ini , versi yang digunakan oleh Windows adalah:

  • SMB 2.0 diperkenalkan oleh Vista / 2008
  • SMB 2.1 oleh Win7 / 2008R2
  • SMB 2.2 alias 3.0 oleh Win8 / 2012
  • SMB 3.02 oleh 8.1 / 2012R2

Ada beberapa mountpesan kesalahan yang berbeda yang dapat ditelusuri kembali ke tingkat protokol yang tidak cocok. Daftar yang tidak lengkap (silakan mengedit jawaban dan menambahkan lebih banyak):

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

Akhirnya, saya telah melihat beberapa komentar yang menunjukkan saran yang sering dikutip untuk menggunakan opsi sec=ntlmv2dan sejenisnya tidak boleh diikuti lagi. Jadi mungkin ide yang baik untuk setidaknya tidak mencampur dan mencocokkan secdan vers.

matt wilkie
sumber
Ini mungkin mesin baru, bagi saya vers=3.0tidak berfungsi tetapi vers=3.02berhasil, terima kasih.
cepat
3
Dan dalam kasus saya, satu-satunya yang saya dapat bekerja adalah vers=2.0(Ubuntu 18.04)
James T Snell
1
Pengalaman yang sama dengan Ubuntu 18.04; pastikan untuk mencoba semua versi SMB yang mungkin.
Jay Taylor
9

OK "Saya" berhasil memecahkannya - untuk beberapa alasan, menambahkan "vers = 3.0" membuatnya berfungsi. Saya tidak tahu mengapa ada masalah tanpa ini, atau mengapa itu berhasil. tetapi untuk referensi di masa mendatang jika orang lain mengalami masalah ini dengan pengaturan freenas mereka.

paul
sumber
1
menambahkan vers=3.0untuk apa ? Tolong bantu
khaverim
1
Saya pikir paul dimaksudkan untuk me-mount opsi.
BHS
2
vers=1.0bekerja untuk saya
Bilow
5

Saya telah berjuang ini selama lebih dari sebulan sekarang. Dengan klien menjadi Xenserver 6.2 dan 6.5, tidak dapat memasang direktori ISO melalui CIFS.

Vers = 3.0 akhirnya bekerja.

Di mana Anda menemukan opsi ini ??!

Domain saya adalah Windows 2012 R2. Saya tidak menurunkan persyaratan otentikasi dalam registri - semuanya masih default (saya baru saja akan membukanya ketika saya menemukan ini).

Saya tidak harus menentukan pengaturan sec = sama sekali.

Saya harus menentukan domain. Saya menentukan domain dalam huruf kapital - mungkin tidak diperlukan.

Perintah saya mengikuti.

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

Sekarang untuk mencari tahu cara menambahkan opsi ke otentikasi.

Terima kasih Paul, siapa pun kamu.

Ken Finch
sumber
3\.0tidak bekerja untuk saya, tetapi 3.0berhasil.
trpt4him
0

FreeNas memungkinkan Anda untuk mengatur pembagian yang lebih aman. Jika Anda mengizinkan protokol keamanan windows terendah (windows NT 4.0) itu akan bekerja dengan samba. Jika Anda mengaturnya, ucapkan protokol Windows XP dan di atas Anda membutuhkan vers = 3.0 seperti yang saya temukan setelah berjuang selama 40 menit untuk mendapatkan koneksi FreeNas wiv CentOS 7. Masalahnya adalah klien (dan GUI) harus memeriksa yang tertinggi versi turun. Sebaliknya itu berjalan dari versi terendah yang tersedia. Ini mungkin masuk akal sekali tetapi banyak yang berubah. Saya pikir itu sangat mengganggu bahwa di Gnome Anda tidak dapat menambahkan opsi, baik untuk menggunakan CIFS atau untuk menentukan versi protokol keamanan. Saya kira mereka mencari orang-orang ini command-line atau tidak sama sekali, tetapi itu membuat Linux tidak digunakan secara lebih luas oleh penggunaan desktop. yang benar-benar memalukan.

Jonah Libster
sumber
-1

pada layanan klik nas4free -> CIFS / SMB di bagian bawah layar dalam jenis kotak Parameter Tambahan

ntlm auth = ya

pengguna352466
sumber
Apa itu nas4freedan bagaimana hubungannya dengan pertanyaan OP?
jesse_b