Skip to Content

Installation de Winbind pour intégrer Samba dans un Domaine Windows

But de ce document

Ce document me sert de mémo pour Installer et configurer Winbind dans le but d’intégrer Samba dans un domaine contrôlé par un serveur Windows NT. Je le diffuse en espérant qu’il puisse servir à d’autres personnes.

Je rappelle que Winbind permet de récupérer les utilisateurs et les groupes du contrôleur de domaine Windows, pour éviter de gérer plusieurs bases de données d’utilisateurs.

Pré-requis

Avoir installé et configuré Samba :

  •  cf mon autre document sur ce sujet : http://www.coagul.org/article.php3 ?id_article=177

    Installation de Winbind

    Paquet à installer :

    apt-get install winbind

    Configuration de /etc/nsswitch.conf

    Ce fichier permet d’indiquer le programme qui s’occupe de la gestion des utilisateurs :

    Il faut simplement ajouter winbind et wins comme indiqué dans l’exemple ci-dessous :

    passwd:     compat winbind
    group:      compat winbind
    shadow:     compat
    hosts:      files dns wins
    networks:   files
    protocols:  db files
    services:   db files
    ethers:     db files
    rpc:        db files
    netgroup:   nis

    Configuration de /etc/samba/smb.conf

    Il faut modifier ce fichier, pour prendre en compte Winbind. Voici un exemple de section [global] qui fonctionne :

    [global]
      workgroup = MonDomaine
      security = DOMAIN

      netbios name = NomDuServeur
      server string = %h server (Samba %v)

      wins server = 192.0.0.9

      idmap uid = 10000-20000
      idmap gid = 10000-20000
     
      winbind separator = /
     
      log file = /var/log/samba/log.%m
      max log size = 1000
      syslog = 0

    Pour finir, il faut modifier les partages pour ajouter le nom du domaine dans les noms des utilisateurs. Voici un exemple de partage qui fonctionne :

    [SAMBA]
      path=/SAMBA
      browseable=yes
      writeable=yes
      valid users=MonDomaine/tony
      admin users=MonDomaine/tony

    Ajouter le serveur Samba au contrôleur de domaine Windows

    Il faut commencer par arrêter le serveur Samba :

    /etc/init.d/samba stop

    Voici la commande pour ajouter le serveur Samba au gestionnaire de serveurs du contrôleur de domaine Windows (l’utilisateur root, doit avoir l’autorisation d’ajouter des serveurs au domaine) :

    net rpc join -U root

    Et si tout se passe bien, le message suivant doit apparaître :

    Joined domain MonDomaine

    Ensuite, il faut redémarrer le serveur Winbind et le serveur Samba :

    /etc/init.d/winbind start
    /etc/init.d/samba start

    Quelques commandes pour vérifier que tout fonctionne

    Remarque : Avant de saisir les commandes suivantes, il faut vérifier que le serveur Samba est correctement ajouté dans la liste des serveurs du « gestionnaire de serveurs » du contrôleur de domaine Windows. Si ce n’est pas le cas, il faut peut-être attendre quelques minutes pour que la mise à jour se fasse.

    La commande suivante doit donner la liste des utilisateurs du domaine :

    wbinfo -u

    Celle-ci la liste des groupes du domaine :

    wbinfo -g

    Celle-ci permet de vérifier que les utilisateurs du domaine sont ajoutés à la liste des utilisateurs du serveur Linux avec les bons uid :

    getent passwd

    La même chose avec les groupes d’utilisateurs :

    getent group

    Cette commande permet de vérifier qu’un utilisateur particulier est correctement reconnu

    wbinfo -a MonDomaine/tony%LeMotDePasse

    La commande suivante permet d’afficher les ressources partagées par le serveur Samba « pgdebian » pour l’utilisateur « tony » :

    smbclient -L //pgdebian -U tony

    Pour finir, il ne reste plus qu’à aller sur un poste client sous Windows et vérifier que tout fonctionne correctement :-)

    Liens pour avoir plus d’informations

    Le plus complet est certainement le site officiel de Samba :

  •  http://us1.samba.org/samba/

    Je conseille particulièrement le chapitre 9 des exemples :

  •  http://us1.samba.org/samba/docs/man/Samba-Guide/unixclients.html

    Historique des modifications

    Version Date Commentaire
    0.1 20/12/04 Création par Tony GALMICHE
    0.11 11/01/05 Corrections mineures
    0.12 17/01/05 Suppression du sommaire
  • Commentaires

    Débutant bloqué

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Petite rectification : j’ai refait l’install depuis le début pour etre sur de mon coup et cette fois ca ne marche pas.

    D’après ce site : http://elricyo.free.fr/ProjetReseau/parti5.htm
    Ce serait lié à PAM. Le problème c’est qu’il fournit une solution pour une distribution autre que Debian et que les fichiers de config semblent un peu différents.

    Si je trouve une solution sure je donnerai les explication ici.

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Et je vient de voir que j’avais déjà posté ces lignes un peu plus haut. En fait si elles ne marchaient pas au début c’est parce que winbind ne faisait pas son travail et ne créait pas les comptes samba -> pas de comptes samba, donc pas de synchro avec les comptes UNIX.

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Pour la création de comptes j’ai ajouté les lignes suivantes dans smb.conf :

    unix password sync = yes

    passwd program = /usr/bin/passwd %u

    passwd chat = *Enter\snew\sUNIX\spassword :* %n\n *Retype\snew\sUNIX\spassword :* %n\n .

    add user script = /usr/sbin/useradd %U -d /home/%u -m -s /bin/bash

    delete user script = /usr/sbin/userdel -r %U

    Par contre le partage home n’est pas correct. J’ai pas encore eu le temps d’aprofondir le problème mois je crois que c’est juste le chemin qui n’est pas bon car si je modifie les lignes pour faire le partage manuellement en indiquant le path du home d’un utilisateur, ca marche.

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Merci d’avoir donné la solution sur ce forum.

    Si tu trouves la solution pour la création des comptes, n’hésite pas à la donner aussi :-)

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Ca marche !

    J’ai réinstallé AD en mettant un vrais nom de domaine de type "nomdedomaine.com" (avant j’avais mis un nom sans extension de type "nomdedomaine").

    Je ne sais pas si ca a un rapport mais j’ai l’imprèssion que winbind ne faisait pas son travail avant.

    Me rèste plus qu’a voir pour la création automatique des comptes Unix liés (pour avoir un dossier home) mais je pense que c’est pas trop compliqué. Apparement y’a une ligne qui permet de synchroniser les comptes samba et les comptes unix.

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    D’accord, donc si je regarde dans la liste des utilisateurs samba je devrait voir les utilisateurs créés sous Windows, non ?

    Si c’est le cas il y a une problème car je ne les voit pas !

    Sinon j’ai viré la ligne "obey pam restrictions = yes" et maintenant j’arrive à aller sur mon partage samba depuis windows. Par contre le partage home rèste inaccessible (un peu normal vu que le dossier home de l’utilisateur n’existe pas). Y’a un moyen pour mettre ca en place automatiquement ?

    j’ai aussi essayé de faire ca :

    adduser test
    smbpasswd -a test
    smbclient -L //Debian -U test

    et j’ai encore "session setup failed : NT_STATUS_LOGON_FAILURE" !

    Normal ou pas normal ?

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Avec Winbind, il n’est pas necessaire d’utiliser de script pour ajouter des utilisateurs à Samba. C’est justement le but de Winbind d’éviter ce travail de duplication des utilsiateurs.

    Concernant Wins, je pense que tu as raison, car Win 2000 ne fonctionne pas du tout pareil avec AD. Mon how-to fonctionne avec Win NT, mais je ne l’ai jamais testé avec Win 2000 et AD.

    Il est vrai qu’il existe beaucoup de doc sur Internet et j’ai également galéré. Mais chaque configuration est également différente. Je pense que tu auras plus de chance avec une doc utilisant Win 2000 et AD.

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    hum... c’est moi qui comprend rien alors ! lol

    Y’a un truc qui me parait pas clair en fait : si le CDP est Windows, on devrait pas utiliser un utilisateur provenant de celui-ci pour accéder aux ressources systèmes (en fait j’ai ajouté un utilisateur samba et fait le test après un redémarrage de samba... et j’ai la même erreur) ?

    J’ai trouvé des docs qui ajoutent des lignes :

    passwd program = /usr/bin/passwd %u

    passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd :*all*authentification*tokens*updated*successfully*

    add user script = /usr/sbin/useradd %U -d /home/%u -m -s /bin/sh

    delete user script = /usr/sbin/userdel -r %U

    C’est ca qui me permetrait de créer automatiquement mes utilisateurs Windows sur Linux et donc utiliser la commande smbclient comme je le faisait ? (j’ai ajouté ces lignes et redémarrer samba mais ca n’a pas l’air de marcher)

    Y’a autre chose sur lequel je me pose des questions également, c’est la ligne "wins server = x.x.x.x"... C’est vraiment obligatoire de metre ca de nos jour avec un serveur 2000 en AD ? Je crois savoir que Wins n’est plus utilisé de nos jours (c’est ce qu’on m’a dit à l’école en tout cas)

    Désolé pour toutes ces questions mais toutes les docs que j’ai trouvé sur samba/winbind semblent utiliser des démarches plus ou moins différentes les unes avec les autres...

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Le login administrateur est un login d’un poste Windows et je doute que l’ordinateur Debian soit un poste Windows :-)

    Il faut que le login existe sur l’ordinateur à afficher les ressources partagées.

    Et pour un poste Linux il faut un utilisateur reconnu par Samba.