Montage des cifs: «Opération non prise en charge»

17

Contrairement à la question similaire , je ne peux même pas me connecter avec smbclient.

Le partage samba fonctionne bien dans Windows et fonctionne automatiquement, mais sous Linux, je ne peux pas le monter du tout et le message d'erreur est au mieux crypté. Voici mon 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

Le message d'erreur est:

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

Un message parfaitement inutile.

Le dmesg activé pour le débogage:

[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

J'ai essayé de nombreuses -secoptions différentes --- elles échouent toutes, tout a le même message d'erreur. smbclient n'est pas non plus utile:

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

Comment cela fonctionne-t-il sur Windows mais pas du tout sur Linux?

Paul
la source

Réponses:

14

Pour remplir les réponses de @Ken et @Paul: La version SMB doit être spécifiée lorsqu'elle est supérieure à v1:

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

Le client du noyau Linux cifs est inclus dans le noyau depuis la 2.5.42. Le protocole cifs (et les dialectes SMB antérieurs associés) est la valeur par défaut ("vers = 1.0") mais la prise en charge des dialectes plus récents (SMB2.02, SMB2.1 et SMB3 et SMB3.02) peut être sélectionnée en spécifiant "vers = 2.0" ou "vers = 2.1" ou "vers = 3.0" ou "vers = 3.02" sur le support. - https://wiki.samba.org/index.php/LinuxCIFSKernel

Pour smbclient, l'incantation est -m, --max-protocol=LEVEL:

smblcient -L server -U username -m SMB2

Je n'ai pas trouvé de liste des niveaux autorisés pour smbclient. Selon Marc Muehlfeld dans ce fil, les versions utilisées par Windows sont:

  • SMB 2.0 a été introduit par Vista / 2008
  • SMB 2.1 par Win7 / 2008R2
  • SMB 2.2 aka 3.0 par Win8 / 2012
  • SMB 3.02 par 8.1 / 2012R2

Il existe plusieurs mountmessages d'erreur différents qui peuvent être retracés à un niveau de protocole incompatible. Une liste non exhaustive (n'hésitez pas à modifier la réponse et à en ajouter plus):

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

Enfin, j'ai vu quelques commentaires qui indiquent que les conseils souvent cités pour utiliser l'option sec=ntlmv2et similaires ne devraient plus être suivis. Donc probablement une bonne idée de ne pas mélanger et assortir secet vers.

Matt Wilkie
la source
Il s'agit peut-être d'une nouvelle machine, car je vers=3.0n'ai pas fonctionné, mais je l' ai vers=3.02fait, merci.
dashesy
3
Et dans mon cas, le seul que j'ai pu travailler était vers=2.0(Ubuntu 18.04)
James T Snell
1
Même expérience avec Ubuntu 18.04; assurez-vous d'essayer toutes les versions SMB possibles.
Jay Taylor
9

OK "je" compris - pour une raison quelconque, l'ajout de "vers = 3.0" le fait fonctionner. Je ne sais pas pourquoi il y avait des problèmes sans cela, ni pourquoi cela fonctionne. mais pour référence future si d'autres ont ce problème avec leurs configurations de freenas.

Paul
la source
1
ajouter vers=3.0à quoi ? S'il vous plaît aider
khaverim
1
Je pense que Paul voulait monter des options.
BHS
2
vers=1.0travaillé pour moi
Bilow
5

Je lutte contre cela depuis plus d'un mois maintenant. Le client étant Xenserver 6.2 et 6.5, ne peut pas monter le répertoire ISO sur CIFS.

Le vers = 3.0 a finalement fonctionné.

Où avez-vous trouvé cette option ??!

Mon domaine est Windows 2012 R2. Je n'ai pas abaissé les exigences d'authentification dans le registre - elles sont toujours par défaut (j'étais sur le point de l'ouvrir grand quand j'ai trouvé cela).

Je n'avais pas du tout besoin de spécifier un paramètre sec =.

J'ai dû spécifier un domaine. J'ai spécifié le domaine en majuscules - peut-être pas nécessaire cependant.

Ma commande suit.

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

Maintenant, pour comprendre comment ajouter des options à l'authentification.

Merci Paul, qui que tu sois.

Ken Finch
la source
3\.0n'a pas fonctionné pour moi, mais 3.0a fonctionné.
trpt4him
0

FreeNas vous permet de configurer des partages plus sécurisés. Si vous autorisez les protocoles de sécurité Windows les plus bas (Windows NT 4.0), cela fonctionnera avec Samba. Si vous l'avez configuré, par exemple, les protocoles Windows XP et ci-dessus vous reuqire le vers = 3.0 comme je l'ai découvert après avoir lutté pendant 40 minutes pour obtenir la connexion FreeNas wiv CentOS 7. Le problème est que les clients (et l'interface graphique) devraient vérifier le plus haut version vers le bas. Au lieu de cela, il va de la version la plus basse disponible. Cela avait peut-être du sens une fois, mais beaucoup de choses ont changé. Je pense qu'il est particulièrement ennuyeux que dans Gnome vous ne puissiez pas ajouter d'options, que ce soit pour utiliser CIFS ou pour spécifier des versions de protocole de sécurité. Je suppose qu'ils pensent que pour ces personnes, c'est la ligne de commande ou rien, mais cela empêche Linux d'être utilisé plus largement par les bureaux. Ce qui est vraiment dommage.

Jonah Libster
la source
-1

sur le service de clic nas4free -> CIFS / SMB en bas de l'écran dans le type de boîte Paramètres supplémentaires

ntlm auth = oui

user352466
la source
Qu'est-ce que c'est nas4freeet comment est-il lié à la question des PO?
jesse_b