Le problème :
Dans deux cas, j'exécute la commande mount via ansible pour monter un partage samba sur deux clients Linux.
Dans les deux cas, le montage est en échec pour cause :
- soit "CIFS VFS: validate protocol negotiate failed: -13"
- soit "CIFS VFS: BAD_NETWORK_NAME"
Solution :
Les erreurs venaient à chaque fois de ma configuration Samba côté serveur.
Les tests que j'ai réalisé pour retrouver la cause :
- Tester le montage du partage à partir de Windows (j'obtenais la même erreur : le problème vient du serveur)
- A partir des linux : smbclient -L <monserveur> -A /path/to/mycredentials
- ça, ça marchait dans 1 cas, dans l'autre cas, le nom du partage était mauvais : tilt ! (n°1)
- Avec le user samba, je suis aller dans le répertoire partagé pour vérifier que j'avais bien les droits
- et là ça ne marchait pas pour le 2ème cas (negociation failed)
Après avoir remis les droits pour l'un, corrigé mon template ansible pour l'autre, tout marche.
Pour info la configuration mis en place :
[global]
workgroup = SAMBA
security = user
unix password sync = no
log file = /var/log/samba/log.%m
guest account = {{samba_user.user}}
force group = {{samba_user.group}}
force user = {{samba_user.user}}
create mode = 0660
directory mode = 0770
[myshare]
path={{samba_share.export_path}}
public=yes
valid users={{samba_user.user}}
writable=yes
browseable = yes
force create mode = 0660
force directory mode = 0770
Et pour autoriser les users à se connecter via leur compte unix et toujours autoriser ce user générique à accéder aux fichiers :
# Ensure all files are owned by {{ samba_user.user }}
shell: "chown -R {{ samba_user.user }}:{{ samba_user.group }} {{samba_share.export_path}}"
# Ensure sticky bit is present on all directories
shell: "find {{ samba_share.export_path }} -type d -exec chmod g+s {} +"
# Add default rw for default group on {{ samba_share.export_path }}
shell: "setfacl -m d:g::rwx {{ samba_share.export_path }}"
# Add default rw for default group on subdirectories
shell: "find {{ samba_share.export_path }} -type d -exec setfacl -m d:g::rwx {} +"
Merci à eux :
https://superuser.com/questions/381416/how-do-i-force-group-and-permissions-for-created-files-inside-a-specific-directo
https://lea-linux.org/documentations/Gestion_des_ACL