Montaggio cifs: "Operazione non supportata"


17

A differenza della domanda simile , non riesco nemmeno a connettermi con smbclient.

La condivisione samba funziona bene in Windows e funziona automagicamente, ma in Linux non riesco affatto a montarlo e il messaggio di errore è criptico al massimo. Ecco il mio 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

Il messaggio di errore è:

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

Un messaggio perfettamente inutile.

Il dmesg abilitato al 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

Ho provato molte -secopzioni diverse --- falliscono tutte, tutto ha lo stesso messaggio di errore. smbclient non è utile neanche:

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

Come funziona su Windows ma non su Linux?

Risposte:


14

Per compilare le risposte da @Ken e @Paul: la versione SMB deve essere specificata quando superiore a v1:

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

Il client del kernel cifs Linux è stato incluso nel kernel dalla 2.5.42. Il protocollo cifs (e relativi dialetti SMB precedenti) è quello predefinito ("vers = 1.0") ma il supporto per i dialetti più recenti (SMB2.02, SMB2.1 e SMB3 e SMB3.02) può essere selezionato specificando "vers = 2.0" o "vers = 2.1" o "vers = 3.0" o "vers = 3.02" sul mount. - https://wiki.samba.org/index.php/LinuxCIFSKernel

Per smbclient l'incantesimo è -m, --max-protocol=LEVEL:

smblcient -L server -U username -m SMB2

Non ho trovato un elenco dei livelli consentiti per smbclient. Secondo Marc Muehlfeld in questa discussione le versioni utilizzate da Windows sono:

  • SMB 2.0 è stato introdotto da Vista / 2008
  • SMB 2.1 di Win7 / 2008R2
  • SMB 2.2 aka 3.0 di Win8 / 2012
  • SMB 3.02 di 8.1 / 2012R2

Esistono diversi mountmessaggi di errore che possono essere ricondotti al livello di protocollo non corrispondente. Un elenco non esauriente (sentiti libero di modificare la risposta e aggiungere altro):

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

Infine, ho visto alcuni commenti che indicano i consigli spesso citati per utilizzare l'opzione sec=ntlmv2e simili non dovrebbero più essere seguiti. Quindi probabilmente una buona idea almeno non mescolare e abbinare sece vers.


Potrebbe essere una nuova macchina, per me vers=3.0non ha funzionato ma vers=3.02ha funzionato, grazie.
dashesy

3
E nel mio caso l'unico a cui potevo andare a lavorare era vers=2.0(Ubuntu 18.04)
James T Snell

1
Stessa esperienza con Ubuntu 18.04; assicurati di provare tutte le possibili versioni SMB.
Jay Taylor,

9

OK "I" l'ho capito-- per qualche motivo, l'aggiunta di "vers = 3.0" lo fa funzionare. Non so perché avesse problemi senza questo, o perché funzioni. ma per riferimento futuro se altri hanno questo problema con le loro configurazioni di Freenas.


1
aggiungendo vers=3.0a cosa ? Per favore
assisti

1
Penso che Paul intendesse montare le opzioni.
BHS,

2
vers=1.0ha funzionato per me
Bilow il

5

Lo sto combattendo da oltre un mese. Con il client Xenserver 6.2 e 6.5, non è possibile montare la directory ISO su CIFS.

Il vers = 3.0 alla fine ha funzionato.

Dove hai trovato questa opzione ??!

Il mio dominio è Windows 2012 R2. Non ho abbassato i requisiti di autenticazione nel registro - sono ancora tutti predefiniti (stavo per aprirlo completamente quando l'ho trovato).

Non ho dovuto specificare un'impostazione sec =.

Ho dovuto specificare un dominio. Ho specificato il dominio in maiuscolo - potrebbe non essere necessario però.

Il mio comando segue.

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

Ora per capire come aggiungere opzioni all'autenticazione.

Grazie Paul, chiunque tu sia.


3\.0non ha funzionato per me, ma 3.0ha funzionato.
trpt4him,

0

FreeNas ti consente di impostare condivisioni più sicure. Se si accettano i protocolli di sicurezza di Windows più bassi (Windows NT 4.0), funzionerà con samba. Se è impostato su, dire i protocolli di Windows XP e sopra si richiede il vers = 3.0 come ho scoperto dopo aver lottato per 40 minuti per ottenere il connecte wiv CentOS 7. Il problema è che i client (e la GUI) dovrebbero controllare il massimo versione giù. Invece va dalla versione più bassa disponibile. Potrebbe aver avuto senso una volta, ma molto è cambiato. Penso che sia particolarmente fastidioso che in Gnome non sia possibile aggiungere opzioni, né per usare CIFS o per specificare le versioni del protocollo di sicurezza. Immagino che pensino che per queste persone sia da riga di comando o niente, ma ciò impedisce a Linux di essere usato più ampiamente dagli usi del desktop. che è davvero un peccato.


-1

su nas4free fare clic sul servizio -> CIFS / SMB nella parte inferiore dello schermo nel tipo di casella Parametri aggiuntivi

ntlm auth = yes


Che cos'è nas4freee come si collega alla domanda di PO?
jesse_b,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.