Passer d’un schéma rfc2307 à un schéma tdb

En environnement windows, un groupe peut être propriétaire d’un fichier alors qu’en linux seul un utilisateur le peut.

Samba va gérer ça en donnant un id unique aux groupes (GUID) et aux utilisateurs (UID).

De fait, un groupe peut être propriétaire d’un dossier sous linux grâce son id. Le winbind en mode rfc2307 ne sait pas gérer ça, il faut revenir en mode tdb, la configuration par défaut de Samba-AD.

Ce problème n’est pas visible tant que “domain admins” n’a pas d’id historique. Si c’est le cas, il n’arrivera pas à interfacer l’id du groupe, le groupe et le dossier dont il est propriétaire.

convertir rfc2307 en tdb

Dans un premier temps, il faut nettoyer la base de données idmap.ldb.

for i in $(ldbsearch  -H /var/lib/samba/private/idmap.ldb  dn  | grep ^dn | awk  '{ print $2 }' | grep -v CONFIG) ; do echo "ldbdel -H /var/lib/samba/private/idmap.ldb $i" ; done

Ce code va vous afficher les lignes de commandes à exécuter. Si vous souhaitez aller plus loin dans son automatisation, vous pouvez vous passer du ‘echo’ .

On redémarre le service samba lorsque la commande a terminé

systemctl restart samba-ad-dc #sous Debian

OU

systemctl restart samba #sous Centos

Pour vérifier que tout remonte dans la base, il est possible de faire les commandes suivantes

samba-tool ntacl sysvolreset
samba-tool ntacl sysvolcheck

Si elle ne renvoie pas d’erreur alors tout est ok.

Si vous souhaitez vérifier le contenu de la base idmap à nouveau

ldbsearch  -H /var/lib/samba/idmap.ldb