Demande #34869
Mis à jour par Klaas TJEBBES il y a presque 3 ans
Il s'agit de la configuration Samba du serveur membre "scribe" du domaine dont le serveur "addc" est le contrôleur de domaine.
Les deux captures d'écran ci-jointes ont été réalisées après avoir placé des droits lorsque "acl_xattr" était activé, des droits qui ne peuvent pas être répliqués par les ACLs POSIX.
On voit qu'en mode "ACLs POSIX" des informations sont manquantes.
J'ignore dans quelles mesures cela peut affecter l'utilisation en production, en quoi l'absence de certaines ACLs NON-posix peut gêner, empêcher un fonctionnement normal côté client Windows.
Cependant, selon ces pages du wiki Samba :
https://wiki.samba.org/index.php/Setting_up_a_Share_Using_Windows_ACLs
"""
Idéalement, votre système prend en charge les ACL NFS4. L'exemple suivant est pour des systèmes comme Linux, où vous n'avez pas ce genre d'ACL. Pour configurer des partages à l'aide de listes de contrôle d'accès étendues (ACL) sur un membre de domaine Unix, vous devez activer la prise en charge dans le fichier smb.conf. Pour activer globalement la prise en charge ACL étendue, ajoutez les paramètres suivants à la section [global] de votre fichier smb.conf :
vfs objects = acl_xattr
map acl inherit = yes
# la ligne suivante n'est requise que pour les version de Samba inférieures à 4.9.0 (Scribe 2.8.1 => samba 2:4.13.17~dfsg-0ubuntu1.20.04.1)
store dos attributes = yes
"""
https://wiki.samba.org/index.php/NFS4_ACL_overview
"""
Les ACL Windows sont très différentes des draft ACL POSIX, c'est pourquoi les gens ne sont souvent pas satisfaits du mappage que Samba peut faire entre les ACL Windows et les draft ACL POSIX. Ces mappages implémentés par Samba ou décrits ici sont souvent insuffisants et avec perte car les ACL POSIX ne permettent pas de définir les autorisations précises comme le font les ACL Windows. Le modèle d'héritage fonctionne également assez différemment et ne peut pas être mappé de l'un à l'autre.
Si vous utilisez le module Samba vfs acl_xattr, vous pouvez utiliser toutes les fonctionnalités ACL de Windows, mais vous ne pourrez pas gérer directement les ACL sur le système d'exploitation de l'hôte Samba et vous n'aurez pas les autorisations appliquées par le système de fichiers. Samba gère la gestion des autorisations dans l'espace utilisateur si vous utilisez acl_xattr. En conséquence, vous ne pourrez pas partager les fichiers autrement que via Samba car vous n'avez pas (ou partiellement) les autorisations sur les fichiers dans le système de fichiers lui-même.
"""
Afin de ne pas modifier le comportement des serveurs en production, on pourrait ajouter ces deux options ("vfs objects = acl_xattr" et " map acl inherit = yes") comme paramétrable dans gen_config. Et trouver une astuce pour que sur les serveurs déjà instanciés cette valeur soit à "non je n'active pas ces deux options" et que sur les nouveaux serveurs elle soit à "oui j'active".
Les deux captures d'écran ci-jointes ont été réalisées après avoir placé des droits lorsque "acl_xattr" était activé, des droits qui ne peuvent pas être répliqués par les ACLs POSIX.
On voit qu'en mode "ACLs POSIX" des informations sont manquantes.
J'ignore dans quelles mesures cela peut affecter l'utilisation en production, en quoi l'absence de certaines ACLs NON-posix peut gêner, empêcher un fonctionnement normal côté client Windows.
Cependant, selon ces pages du wiki Samba :
https://wiki.samba.org/index.php/Setting_up_a_Share_Using_Windows_ACLs
"""
Idéalement, votre système prend en charge les ACL NFS4. L'exemple suivant est pour des systèmes comme Linux, où vous n'avez pas ce genre d'ACL. Pour configurer des partages à l'aide de listes de contrôle d'accès étendues (ACL) sur un membre de domaine Unix, vous devez activer la prise en charge dans le fichier smb.conf. Pour activer globalement la prise en charge ACL étendue, ajoutez les paramètres suivants à la section [global] de votre fichier smb.conf :
vfs objects = acl_xattr
map acl inherit = yes
# la ligne suivante n'est requise que pour les version de Samba inférieures à 4.9.0 (Scribe 2.8.1 => samba 2:4.13.17~dfsg-0ubuntu1.20.04.1)
store dos attributes = yes
"""
https://wiki.samba.org/index.php/NFS4_ACL_overview
"""
Les ACL Windows sont très différentes des draft ACL POSIX, c'est pourquoi les gens ne sont souvent pas satisfaits du mappage que Samba peut faire entre les ACL Windows et les draft ACL POSIX. Ces mappages implémentés par Samba ou décrits ici sont souvent insuffisants et avec perte car les ACL POSIX ne permettent pas de définir les autorisations précises comme le font les ACL Windows. Le modèle d'héritage fonctionne également assez différemment et ne peut pas être mappé de l'un à l'autre.
Si vous utilisez le module Samba vfs acl_xattr, vous pouvez utiliser toutes les fonctionnalités ACL de Windows, mais vous ne pourrez pas gérer directement les ACL sur le système d'exploitation de l'hôte Samba et vous n'aurez pas les autorisations appliquées par le système de fichiers. Samba gère la gestion des autorisations dans l'espace utilisateur si vous utilisez acl_xattr. En conséquence, vous ne pourrez pas partager les fichiers autrement que via Samba car vous n'avez pas (ou partiellement) les autorisations sur les fichiers dans le système de fichiers lui-même.
"""
Afin de ne pas modifier le comportement des serveurs en production, on pourrait ajouter ces deux options ("vfs objects = acl_xattr" et " map acl inherit = yes") comme paramétrable dans gen_config. Et trouver une astuce pour que sur les serveurs déjà instanciés cette valeur soit à "non je n'active pas ces deux options" et que sur les nouveaux serveurs elle soit à "oui j'active".