Монтаж CIF: «Операция не поддерживается»

17

В отличие от аналогичного вопроса , я даже не могу связаться с 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?

Павел
источник

Ответы:

14

Чтобы заполнить ответы от @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" или "верс = 2,1" или "верс = 3,0" или "верс = 3,02" при монтировании. - https://wiki.samba.org/index.php/LinuxCIFSKernel

Для клиента это заклинание -m, --max-protocol=LEVEL:

smblcient -L server -U username -m SMB2

Я не нашел список разрешенных уровней для smbclient. По словам Марка Мюльфельда в этой теме, версии, используемые Windows:

  • SMB 2.0 был представлен Vista / 2008
  • SMB 2.1 от Win7 / 2008R2
  • SMB 2.2 ака 3.0 от Win8 / 2012
  • SMB 3,02 на 8,1 / 2012R2

Существует несколько различных mountсообщений об ошибках, которые можно отследить до уровня протокола, который не соответствует. Неполный список (не стесняйтесь редактировать ответ и добавлять больше):

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

Наконец, я видел некоторые комментарии, которые указывают на часто цитируемый совет по использованию опции, sec=ntlmv2и больше не следует придерживаться подобного. Так что, вероятно, хорошая идея, по крайней мере, не смешивать и сочетать secи vers.

Мэтт Уилки
источник
Это может быть новая машина, для меня vers=3.0не работал, но vers=3.02сделал, спасибо.
Дашесы
3
И в моем случае единственным, кого я мог получить на работу, было vers=2.0(Ubuntu 18.04)
Джеймс Т Снелл
1
Тот же опыт с Ubuntu 18.04; не забудьте попробовать все возможные версии SMB.
Джей Тейлор,
9

ОК, "Я" понял это - по какой-то причине, добавив "вер = 3.0", это работает. Я не знаю, почему у него были проблемы без этого, или почему это работает. но для дальнейшего использования, если у других возникла эта проблема с настройками freenas.

Павел
источник
1
добавление vers=3.0к чему ? Пожалуйста, помогите
Хаверим
1
Я думаю, что Пол хотел смонтировать варианты.
BHS
2
vers=1.0работал для меня
Bilow
5

Я борюсь с этим уже больше месяца. Поскольку клиент Xenserver 6.2 и 6.5, он не может смонтировать каталог ISO через CIFS.

Версия = 3.0 наконец-то сработала.

Где вы нашли этот вариант ??!

Мой домен - Windows 2012 R2. Я не понизил требования к аутентификации в реестре - они все еще по умолчанию (я как раз собирался открыть их широко, когда нашел это).

Мне не нужно было указывать параметр sec =.

Я должен был указать домен. Я указал домен прописными буквами - может и не понадобиться.

Моя команда следует.

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

Теперь нужно выяснить, как добавить параметры аутентификации.

Спасибо Пол, кто бы ты ни был.

Кен Финч
источник
3\.0у меня не сработало, но сработало 3.0.
trpt4him
0

FreeNas позволяет вам настроить более безопасные акции. Если вы разрешите протоколы безопасности Windows (Windows NT 4.0) самого низкого уровня, он будет работать с samba. Если вы установили его, скажем, для протоколов Windows XP и выше, вам нужно пересмотреть версию = 3.0, как я обнаружил после 40-минутной попытки получить FreeNas-соединение с CentOS 7. Проблема заключается в том, что клиенты (и GUI) должны проверять самые высокие значения. версия вниз. Вместо этого это идет от самой низкой доступной версии. Возможно, это имело смысл один раз, но многое изменилось. Я думаю, что особенно досадно, что в Gnome вы не можете добавлять опции ни для использования CIFS, ни для указания версий протокола безопасности. Я думаю, они считают, что для этих людей это командная строка или ничего, но это не позволяет Linux более широко использоваться настольными системами. это действительно позор.

Иона Либстер
источник
-1

на nas4free щелкните сервис -> CIFS / SMB внизу экрана в поле типа Дополнительные параметры

ntlm auth = yes

user352466
источник
Что это такое nas4freeи как оно связано с вопросом ОП?
jesse_b