Rechercher

1.4. Comprendre et configurer le mappage des identifiants Samba

download PDF

Les domaines Windows distinguent les utilisateurs et les groupes par des identifiants de sécurité (SID) uniques. Cependant, Linux exige des UID et des GID uniques pour chaque utilisateur et chaque groupe. Si vous exécutez Samba en tant que membre d'un domaine, le service winbindd est chargé de fournir au système d'exploitation des informations sur les utilisateurs et les groupes du domaine.

Pour permettre au service winbindd de fournir à Linux des identifiants uniques pour les utilisateurs et les groupes, vous devez configurer le mappage des identifiants dans le fichier /etc/samba/smb.conf pour :

  • La base de données locale (domaine par défaut)
  • Le domaine AD ou NT4 dont le serveur Samba est membre
  • Chaque domaine de confiance à partir duquel les utilisateurs doivent pouvoir accéder aux ressources de ce serveur Samba

Samba fournit différents back ends de mappage d'ID pour des configurations spécifiques. Les back ends les plus fréquemment utilisés sont les suivants :

Retour à la case départUse case

tdb

Le domaine par défaut * uniquement

ad

Domaines AD uniquement

rid

Domaines AD et NT4

autorid

AD, NT4 et le domaine par défaut *

1.4.1. Planification des plages d'ID Samba

Que vous stockiez les UID et GID Linux dans AD ou que vous configuriez Samba pour les générer, chaque configuration de domaine nécessite une plage d'ID unique qui ne doit pas se chevaucher avec d'autres domaines.

Avertissement

Si vous définissez des plages d'identifiants qui se chevauchent, Samba ne fonctionnera pas correctement.

Exemple 1.1. Plages d'identifiants uniques

Le tableau suivant montre les plages de mappage d'ID qui ne se chevauchent pas pour les domaines par défaut (*), AD-DOM et TRUST-DOM.

[global]
...
idmap config * : backend = tdb
idmap config * : range = 10000-999999

idmap config AD-DOM:backend = rid
idmap config AD-DOM:range = 2000000-2999999

idmap config TRUST-DOM:backend = rid
idmap config TRUST-DOM:range = 4000000-4999999
Important

Vous ne pouvez attribuer qu'une seule plage par domaine. Par conséquent, laissez suffisamment d'espace entre les plages des domaines. Cela vous permettra d'étendre la plage ultérieurement si votre domaine s'agrandit.

Si vous attribuez ultérieurement une plage différente à un domaine, la propriété des fichiers et des répertoires créés précédemment par ces utilisateurs et ces groupes sera perdue.

1.4.2. The * default domain

Dans un environnement de domaine, vous ajoutez une configuration de mappage d'ID pour chacun des éléments suivants :

  • Le domaine dont le serveur Samba est membre
  • Chaque domaine de confiance qui doit pouvoir accéder au serveur Samba

Cependant, pour tous les autres objets, Samba attribue des identifiants du domaine par défaut. Ceci inclut :

  • Utilisateurs et groupes locaux de Samba
  • Comptes et groupes intégrés à Samba, tels que BUILTIN\Administrators
Important

Vous devez configurer le domaine par défaut comme décrit dans cette section pour permettre à Samba de fonctionner correctement.

Le back-end du domaine par défaut doit être accessible en écriture pour stocker en permanence les identifiants attribués.

Pour le domaine par défaut, vous pouvez utiliser l'un des back ends suivants :

tdb

Lorsque vous configurez le domaine par défaut pour utiliser le back-end tdb, définissez une plage d'ID suffisamment large pour inclure les objets qui seront créés à l'avenir et qui ne font pas partie d'une configuration définie de mappage d'ID de domaine.

Par exemple, dans la section [global] du fichier /etc/samba/smb.conf, vous pouvez définir ce qui suit :

idmap config * : backend = tdb
idmap config * : range = 10000-999999

Pour plus de détails, voir Utilisation du back-end de mappage des ID TDB.

autorid

Lorsque vous configurez le domaine par défaut pour utiliser le back-end autorid, l'ajout de configurations supplémentaires de mappage d'ID pour les domaines est facultatif.

Par exemple, dans la section [global] du fichier /etc/samba/smb.conf, vous pouvez définir ce qui suit :

idmap config * : backend = autorid
idmap config * : range = 10000-999999

Pour plus de détails, voir Utilisation du back-end de mappage de l'identifiant autorid.

1.4.3. Utilisation du back-end de mappage de l'ID de la tdb

Le service winbindd utilise par défaut le back-end de mappage d'ID inscriptible tdb pour stocker les tables de mappage d'identifiants de sécurité (SID), d'identifiants d'utilisateur (UID) et d'identifiants d'utilisateur (GID). Cela inclut les utilisateurs locaux, les groupes et les mandants intégrés.

Utilisez ce back-end uniquement pour le domaine par défaut *. Par exemple :

idmap config * : backend = tdb
idmap config * : range = 10000-999999

Ressources supplémentaires

1.4.4. Utilisation du back-end de mappage des identifiants publicitaires

Cette section décrit comment configurer un membre Samba AD pour utiliser le back-end de mappage d'ID ad.

Le back-end de mappage d'ID ad met en œuvre une API en lecture seule pour lire les informations sur les comptes et les groupes à partir d'AD. Cela présente les avantages suivants :

  • Tous les paramètres des utilisateurs et des groupes sont stockés de manière centralisée dans AD.
  • Les ID d'utilisateur et de groupe sont cohérents sur tous les serveurs Samba qui utilisent ce back-end.
  • Les identifiants ne sont pas stockés dans une base de données locale susceptible d'être corrompue, et les propriétaires des fichiers ne peuvent donc pas être perdus.
Note

Le back-end de mappage d'ID ad ne prend pas en charge les domaines Active Directory avec des trusts à sens unique. Si vous configurez un membre de domaine dans un Active Directory avec des trusts à sens unique, utilisez à la place l'un des backends de mappage d'ID suivants : tdb, rid, ou autorid.

Le back-end de l'annonce lit les attributs suivants de l'annonce :

Nom de l'attribut ADType d'objetMises en correspondance avec

sAMAccountName

Utilisateur et groupe

Nom de l'utilisateur ou du groupe, en fonction de l'objet

uidNumber

User

Identifiant de l'utilisateur (UID)

gidNumber

Groupe

ID du groupe (GID)

loginShell [a]

User

Chemin d'accès à l'interpréteur de commandes de l'utilisateur

unixHomeDirectory [a]

User

Chemin d'accès au répertoire personnel de l'utilisateur

primaryGroupID [b]

User

ID du groupe primaire

[a] Samba ne lit cet attribut que si vous avez défini idmap config DOMAIN:unix_nss_info = yes.
[b] Samba ne lit cet attribut que si vous avez défini idmap config DOMAIN:unix_primary_group = yes.

Conditions préalables

  • Les utilisateurs et les groupes doivent avoir des identifiants uniques définis dans AD, et les identifiants doivent être compris dans la plage configurée dans le fichier /etc/samba/smb.conf. Les objets dont les ID sont en dehors de cette plage ne seront pas disponibles sur le serveur Samba.
  • Les utilisateurs et les groupes doivent avoir tous les attributs requis définis dans AD. Si les attributs requis sont manquants, l'utilisateur ou le groupe ne sera pas disponible sur le serveur Samba. Les attributs requis dépendent de votre configuration. conditions préalables
  • Vous avez installé Samba.
  • La configuration de Samba, à l'exception du mappage des identifiants, existe dans le fichier /etc/samba/smb.conf.

Procédure

  1. Modifiez la section [global] dans le fichier /etc/samba/smb.conf:

    1. Ajoutez une configuration de mappage d'ID pour le domaine par défaut (*) s'il n'existe pas. Par exemple :

      idmap config * : backend = tdb
      idmap config * : range = 10000-999999
    2. Activer le back-end de mappage de ad ID pour le domaine AD :

      idmap config DOMAIN: backend = ad
    3. Définir la plage d'ID attribuée aux utilisateurs et aux groupes dans le domaine AD. Par exemple :

      idmap config DOMAIN: range = 2000000-2999999
      Important

      La plage ne doit pas se chevaucher avec une autre configuration de domaine sur ce serveur. De plus, la plage doit être suffisamment grande pour inclure tous les identifiants attribués à l'avenir. Pour plus de détails, voir Planification des plages d'ID Samba.

    4. Définir que Samba utilise le schéma RFC 2307 lors de la lecture des attributs d'AD :

      idmap config DOMAIN: schema_mode = rfc2307
    5. Pour permettre à Samba de lire le shell de connexion et le chemin d'accès au répertoire personnel de l'utilisateur à partir de l'attribut AD correspondant, définissez :

      idmap config DOMAIN: unix_nss_info = yes

      Vous pouvez également définir un chemin d'accès au répertoire d'accueil et un shell de connexion uniformes pour l'ensemble du domaine, qui seront appliqués à tous les utilisateurs. Par exemple :

      template shell = /bin/bash
      template homedir = /home/%U
    6. Par défaut, Samba utilise l'attribut primaryGroupID d'un objet utilisateur comme groupe primaire de l'utilisateur sous Linux. Vous pouvez également configurer Samba pour qu'il utilise la valeur définie dans l'attribut gidNumber:

      idmap config DOMAIN: unix_primary_group = yes
  2. Vérifiez le fichier /etc/samba/smb.conf:

    # testparm
  3. Recharger la configuration de Samba :

    # smbcontrol all reload-config

Ressources supplémentaires

  • The * default domain
  • smb.conf(5) et idmap_ad(8) pages de manuel
  • VARIABLE SUBSTITUTIONS section dans la page de manuel smb.conf(5)

1.4.5. Utilisation du back-end de mappage de l'identifiant rid

Cette section décrit comment configurer un membre du domaine Samba pour qu'il utilise le back-end rid ID mapping.

Samba peut utiliser l'identifiant relatif (RID) d'un SID Windows pour générer un ID sur Red Hat Enterprise Linux.

Note

Le RID est la dernière partie du SID. Par exemple, si le SID d'un utilisateur est S-1-5-21-5421822485-1151247151-421485315-30014, alors 30014 est le RID correspondant.

Le back-end de mappage d'ID rid implémente une API en lecture seule pour calculer les informations sur les comptes et les groupes sur la base d'un schéma de mappage algorithmique pour les domaines AD et NT4. Lorsque vous configurez le back-end, vous devez définir le RID le plus bas et le plus élevé dans le paramètre idmap config DOMAIN : range dans le paramètre Samba ne mappera pas les utilisateurs ou les groupes avec un RID inférieur ou supérieur à celui défini dans ce paramètre.

Important

En tant que back-end en lecture seule, rid ne peut pas attribuer de nouveaux ID, comme pour les groupes BUILTIN. Par conséquent, n'utilisez pas ce back-end pour le domaine par défaut *.

Avantages de l'utilisation du back-end rid

  • Tous les utilisateurs et groupes du domaine dont le RID se situe dans la plage configurée sont automatiquement disponibles sur le membre du domaine.
  • Il n'est pas nécessaire d'attribuer manuellement des identifiants, des répertoires personnels et des shells de connexion.

Inconvénients de l'utilisation du back-end rid

  • Tous les utilisateurs du domaine se voient attribuer le même shell de connexion et le même répertoire personnel. Vous pouvez toutefois utiliser des variables.
  • Les ID d'utilisateurs et de groupes ne sont identiques entre les membres du domaine Samba que si tous utilisent le back-end rid avec les mêmes paramètres de plage d'ID.
  • Vous ne pouvez pas exclure des utilisateurs ou des groupes individuels de la disponibilité sur le membre du domaine. Seuls les utilisateurs et les groupes en dehors de la plage configurée sont exclus.
  • D'après les formules utilisées par le service winbindd pour calculer les ID, des doublons peuvent se produire dans les environnements multi-domaines si des objets de différents domaines ont le même RID.

Conditions préalables

  • Vous avez installé Samba.
  • La configuration de Samba, à l'exception du mappage des identifiants, existe dans le fichier /etc/samba/smb.conf.

Procédure

  1. Modifiez la section [global] dans le fichier /etc/samba/smb.conf:

    1. Ajoutez une configuration de mappage d'ID pour le domaine par défaut (*) s'il n'existe pas. Par exemple :

      idmap config * : backend = tdb
      idmap config * : range = 10000-999999
    2. Activer le back-end de mappage de rid ID pour le domaine :

      idmap config DOMAIN: backend = rid
    3. Définissez un intervalle suffisamment grand pour inclure tous les RID qui seront attribués à l'avenir. Par exemple :

      idmap config DOMAIN: range = 2000000-2999999

      Samba ignore les utilisateurs et les groupes dont les RID dans ce domaine ne sont pas compris dans l'intervalle.

      Important

      La plage ne doit pas se chevaucher avec une autre configuration de domaine sur ce serveur. De plus, la plage doit être suffisamment grande pour inclure tous les identifiants attribués à l'avenir. Pour plus de détails, voir Planification des plages d'ID Samba.

    4. Définir un shell et un chemin d'accès au répertoire personnel qui seront attribués à tous les utilisateurs mappés. Par exemple :

      template shell = /bin/bash
      template homedir = /home/%U
  2. Vérifiez le fichier /etc/samba/smb.conf:

    # testparm
  3. Recharger la configuration de Samba :

    # smbcontrol all reload-config

Ressources supplémentaires

  • The * default domain
  • VARIABLE SUBSTITUTIONS section dans la page de manuel smb.conf(5)
  • Calcul de l'ID local à partir d'un RID, voir la page de manuel idmap_rid(8)

1.4.6. Utilisation du back-end de mappage de l'identifiant autorid

Cette section décrit comment configurer un membre du domaine Samba pour qu'il utilise le back-end autorid ID mapping.

Le back-end autorid fonctionne de la même manière que le back-end rid ID mapping, mais il peut attribuer automatiquement des ID pour différents domaines. Cela vous permet d'utiliser le back-end autorid dans les situations suivantes :

  • Uniquement pour le domaine par défaut *
  • Pour le domaine par défaut * et les domaines supplémentaires, sans qu'il soit nécessaire de créer des configurations de mappage d'ID pour chacun des domaines supplémentaires
  • Uniquement pour des domaines spécifiques
Note

Si vous utilisez autorid pour le domaine par défaut, l'ajout d'une configuration supplémentaire de mappage d'ID pour les domaines est facultatif.

Certaines parties de cette section ont été adoptées à partir de la documentation idmap config autorid publiée dans le Samba Wiki. Licence : CC BY 4.0. Auteurs et contributeurs : Voir l'onglet historique de la page Wiki.

Avantages de l'utilisation du back-end autorid

  • Tous les utilisateurs et groupes du domaine dont l'UID et le GID calculés se trouvent dans la plage configurée sont automatiquement disponibles sur le membre du domaine.
  • Il n'est pas nécessaire d'attribuer manuellement des identifiants, des répertoires personnels et des shells de connexion.
  • Pas d'ID en double, même si plusieurs objets dans un environnement multi-domaines ont le même RID.

Inconvénients

  • Les ID d'utilisateur et de groupe ne sont pas les mêmes pour tous les membres du domaine Samba.
  • Tous les utilisateurs du domaine se voient attribuer le même shell de connexion et le même répertoire personnel. Vous pouvez toutefois utiliser des variables.
  • Vous ne pouvez pas exclure des utilisateurs ou des groupes individuels de la disponibilité sur le membre du domaine. Seuls les utilisateurs et les groupes dont l'UID ou le GID calculé est en dehors de la plage configurée sont exclus.

Conditions préalables

  • Vous avez installé Samba.
  • La configuration de Samba, à l'exception du mappage des identifiants, existe dans le fichier /etc/samba/smb.conf.

Procédure

  1. Modifiez la section [global] dans le fichier /etc/samba/smb.conf:

    1. Activer le back-end de mappage d'ID autorid pour le domaine par défaut *:

      idmap config * : backend = autorid
    2. Définissez une plage suffisamment grande pour attribuer des identifiants à tous les objets existants et futurs. Par exemple :

      idmap config * : range = 10000-999999

      Samba ignore les utilisateurs et les groupes dont les ID calculés dans ce domaine ne sont pas compris dans cette plage.

      Avertissement

      Une fois que vous avez défini la plage et que Samba commence à l'utiliser, vous ne pouvez augmenter que la limite supérieure de la plage. Toute autre modification de la plage peut entraîner de nouvelles attributions d'ID, et donc la perte de propriétaires de fichiers.

    3. Il est possible de définir une taille de plage. Par exemple :

      idmap config * : rangesize = 200000

      Samba assigns this number of continuous IDs for each domain’s object until all IDs from the range set in the idmap config * : range parameter are taken.

      Note

      Si vous définissez une taille de plage, vous devez adapter la plage en conséquence. La plage doit être un multiple de la taille de la plage.

    4. Définir un shell et un chemin d'accès au répertoire personnel qui seront attribués à tous les utilisateurs mappés. Par exemple :

      template shell = /bin/bash
      template homedir = /home/%U
    5. En option, ajoutez une configuration supplémentaire de mappage d'ID pour les domaines. Si aucune configuration pour un domaine individuel n'est disponible, Samba calcule l'ID en utilisant les paramètres du back-end autorid dans le domaine par défaut * précédemment configuré.

      Important

      La plage ne doit pas se chevaucher avec une autre configuration de domaine sur ce serveur. De plus, la plage doit être suffisamment grande pour inclure tous les identifiants attribués à l'avenir. Pour plus de détails, voir Planification des plages d'ID Samba.

  2. Vérifiez le fichier /etc/samba/smb.conf:

    # testparm
  3. Recharger la configuration de Samba :

    # smbcontrol all reload-config

Ressources supplémentaires

  • THE MAPPING FORMULAS section dans la page de manuel idmap_autorid(8)
  • rangesize description du paramètre dans la page de manuel idmap_autorid(8)
  • VARIABLE SUBSTITUTIONS section dans la page de manuel smb.conf(5)
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.