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 nombreux -sec
options --- 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?
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.
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 versions antérieures SMB dialectes)) est le protocole par défaut ("vers = 1.0") mais la prise en charge des nouveaux dialectes (SMB2.02, SMB2.1 et SMB3 et SMB3.02) peut être sélectionné en spécifiant "vers = 2.0" ou "vers = 2.1" ou "vers = 3.0" ou "vers = 3.02" sur le montage. - 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:
Il existe plusieurs différents messages d'erreur mount
qui peuvent être retracés au niveau de protocole non concordant. 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 les conseils souvent cités pour utiliser l'option sec=ntlmv2
et similaires ne devraient plus être suivis. Donc probablement une bonne idée de ne pas mélanger et faire correspondre sec
et vers
.
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 =.
I DID dois 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.
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 défini, dites Windows XP et ci-dessus, vous réapprenez le vers = 3.0 comme je l'ai découvert après avoir lutté pendant 40 minutes pour obtenir la connexion FreeNas avec CentOS 7. Le problème est que les clients (et l'interface graphique) devrait vérifier la version la plus élevée. Au lieu de cela, elle va de la version la plus basse disponible. Cela peut avoir 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, CIFS ou pour spécifier les versions des protocoles de sécurité. Je suppose qu'ils pensent que ces personnes sont en ligne de commande ou rien, mais cela empêche Linux d'être utilisé plus largement par les bureaux. Ce qui est vraiment dommage.