Montaje de cifs: "Operación no admitida"

17

A diferencia de la pregunta similar , ni siquiera puedo conectarme con smbclient.

El recurso compartido de samba funciona bien en Windows y funciona automáticamente, pero en Linux no puedo montarlo y el mensaje de error es críptico en el mejor de los casos. Aquí está mi 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

El mensaje de error es:

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

Un mensaje perfectamente inútil.

El dmesg habilitado para depuración:

[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

He probado muchas -secopciones diferentes: todas fallan, todo tiene el mismo mensaje de error. smbclient tampoco es útil:

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

¿Cómo funciona esto en Windows pero no en Linux?

Pablo
fuente

Respuestas:

14

Para completar las respuestas de @Ken y @Paul: La versión SMB debe especificarse cuando sea superior a v1:

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

El cliente de kernel cifs de Linux se ha incluido en el kernel desde 2.5.42. El protocolo cifs (y los dialectos SMB anteriores relacionados) es el predeterminado ("vers = 1.0") pero se puede seleccionar el soporte para dialectos más nuevos (SMB2.02, SMB2.1 y SMB3 y SMB3.02) especificando "vers = 2.0" o "vers = 2.1" o "vers = 3.0" o "vers = 3.02" en el soporte. - https://wiki.samba.org/index.php/LinuxCIFSKernel

Para smbclient, el encantamiento es -m, --max-protocol=LEVEL:

smblcient -L server -U username -m SMB2

No encontré una lista de los niveles permitidos para smbclient. Según Marc Muehlfeld en este hilo, las versiones utilizadas por Windows son:

  • SMB 2.0 fue presentado por Vista / 2008
  • SMB 2.1 por Win7 / 2008R2
  • SMB 2.2 aka 3.0 por Win8 / 2012
  • SMB 3.02 por 8.1 / 2012R2

Hay varios mountmensajes de error diferentes que se pueden rastrear hasta el nivel de protocolo no coincidente. Una lista no exhaustiva (no dude en editar la respuesta y agregar más):

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

Finalmente, he visto algunos comentarios que indican los consejos a menudo citados para usar la opción sec=ntlmv2y similares que ya no deberían seguirse. Así que probablemente una buena idea por lo menos no mezclar y combinar secy vers.

wilkie mate
fuente
Puede ser una máquina nueva, para mí vers=3.0no funcionó pero vers=3.02funcionó, gracias.
guiones
3
Y en mi caso, el único que pude poner a trabajar fue vers=2.0(Ubuntu 18.04)
James T Snell
1
La misma experiencia con Ubuntu 18.04; asegúrese de probar todas las versiones SMB posibles.
Jay Taylor el
9

OK "I" lo descubrí, por alguna razón, agregar "vers = 3.0" lo hace funcionar. No sé por qué tenía problemas sin esto, o por qué funciona. pero para referencia futura si otros tienen este problema con sus configuraciones de freenas.

Pablo
fuente
1
agregando vers=3.0a qué ? Por favor, ayuda
Khaverim
1
Creo que Paul tenía la intención de montar opciones.
BHS
2
vers=1.0funcionó para mí
Bilow
5

He estado luchando contra esto por más de un mes. Con el cliente como Xenserver 6.2 y 6.5, no se puede montar el directorio ISO sobre CIFS.

El vers = 3.0 finalmente funcionó.

¿Dónde encontraste esta opción?

Mi dominio es Windows 2012 R2. No bajé los requisitos de autenticación en el registro; todos son predeterminados (estaba a punto de abrirlo cuando lo encontré).

No tuve que especificar una configuración sec = en absoluto.

Tuve que especificar un dominio. Especifiqué el dominio en mayúsculas, aunque puede no ser necesario.

Mi comando sigue.

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

Ahora para descubrir cómo agregar opciones a la autenticación.

Gracias Paul, quienquiera que seas.

Ken Finch
fuente
3\.0no funcionó para mí, pero lo 3.0hizo.
trpt4him
0

FreeNas le permite configurar recursos compartidos más seguros. Si permite los protocolos de seguridad de Windows más bajos (Windows NT 4.0), funcionará con samba. Si lo tiene configurado para, digamos protocolos de Windows XP y más arriba, necesita el vers = 3.0 como descubrí después de luchar durante 40 minutos para obtener el FreeNas conectado con CentOS 7. El problema es que los clientes (y la GUI) deberían verificar el más alto versión baja En cambio, va desde la versión más baja disponible. Puede haber tenido sentido una vez, pero mucho ha cambiado. Creo que es especialmente molesto que en Gnome no se puedan agregar opciones, ya sea para usar CIFS o para especificar versiones de protocolo de seguridad. Supongo que creen que para estas personas es la línea de comandos o nada, pero eso evita que Linux sea utilizado más ampliamente por los usos de escritorio. Lo que realmente es una lástima.

Jonás Libster
fuente
-1

en nas4free click service -> CIFS / SMB en la parte inferior de la pantalla en el tipo de cuadro Parámetros adicionales

ntlm auth = yes

usuario352466
fuente
¿Qué es nas4freey cómo se relaciona con la pregunta de los OP?
jesse_b