Монтаж cifs: "Операція не підтримується"


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" або "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. За словами Марка Мауельфельда в цій нитці використовуються версії, які використовує Windows:

  • SMB 2.0 була представлена ​​Vista / 2008
  • SMB 2.1 від Win7 / 2008R2
  • SMB 2.2 aka 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

Гаразд "Я" зрозумів це - чомусь додавання "vers = 3.0" змушує його працювати. Я не знаю, чому у нього виникали проблеми без цього, або чому це працює. але для подальшого ознайомлення, якщо у інших виникають проблеми з налаштуваннями фрін.


1
додавання vers=3.0до чого ? Будь ласка,
допоможіть

1
Я думаю, що Паул мав на меті встановити варіанти.
BHS

2
vers=1.0працював на мене
Білоу

5

Я боюся з цим вже більше місяця. Оскільки клієнт Xenserver 6.2 і 6.5 не може монтувати каталог ISO на CIFS.

Версія = 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

Тепер розібратися, як додати параметри до аутентифікації.

Спасибі Павлу, ким би ти не був.


3\.0не працював для мене, але 3.0робив.
trpt4him

0

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


-1

на службі натиснення без4x4 -> CIFS / SMB у нижній частині екрана у полі Додаткові параметри

ntlm auth = так


Що таке nas4freeі як це стосується питання ОП?
jesse_b
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.