<?xml version="1.0" encoding="iso-8859"?>
<!DOCTYPE chapter PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
<chapter id="FastStart">
<chapterinfo>
        <!--&author.jht;-->
</chapterinfo>

<title>Une prise en main rapide: la solution à vos attentes</title>

<para>
Lorsque nous recherchions des suggestions afin de compléter la documentation HOWTO de Samba,
une personne nous a demandé des exemples de configuration, et elle en demandait un paquet. C'est une tâche particulièrement
difficile à réaliser sans perdre les nombreux avantages que l'on peut tirer d'une présentation à partir de systèmes en fonctionnement.
La suite de ce document tente d'y remédier par des descriptions approfondies des différentes possibilités de configuration, tout en restant dans le contexte du chapitre.
Nous espérons que ce chapitre répondra à vos attentes. 
</para>

<para>
L'information donnée dans ce chapitre n'est pas très fournie comparé au livre <quote>Samba-3 by Example</quote>
qui a été écrit au moment où la version originale de ce livre était sur le point d'être achevée. <quote>Samba-3 by Example</quote>
était le résultat des retours d'informations des relecteurs lors de la première édition de l'exemplaire finale. Il
était intéressant de constater que les retours des lecteurs reflétaient ceux donnés par les relecteurs originaux.
Toutefois, nous avons passé un mois et demi à faire des recherches de façon à mieux réfléchir à ce qui serait le plus utile pour les administrateurs réseaux novices ou expérimentés.
Le livre <quote>Samba-3 by Example</quote> est le résultat de cette recherche. Ce qui est présenté 
ici en quelques pages est traité d'une manière plus exhaustive dans la seconde édition de <quote>Samba-3 by Example</quote>. Les deux livres verront leur deuxième édition paraître en même temps.
</para>

<para>
Ainsi en résumé, le livre <quote>The Official Samba-3 HOWTO &amp; Reference Guide</quote> représente 
l'équivalent pour un mécanicien d'un guide de réparation de voitures. Le livre <quote>Samba-3 by Example</quote> 
est l'équivalent du guide du conducteur qui décrit comment conduire sa voiture. Si vous voulez des
exemples complets de configuration réseau, vous pouvez aller à l'adresse suivante 
<ulink url="http://www.samba.org/samba/docs/Samba3-ByExample.pdf">Samba-3 by Example</ulink>.
</para>

<sect1>
<title>Caractéristiques et avantages</title>    

<para>
Avec Samba, on n'a pas besoin de faire beaucoup de configuration pour créer un système de base qui fonctionne.
Plus on avance dans ce chapitre, plus les exemples sont complexes, et toutes les étapes et les changements liés au fichier de configuration seront explicités.
Il faut savoir qu'un système configuré dans le détail, sera plus à même d'utiliser des fonctionnalités intelligentes supplémentaires. Nous traiterons ces 
fonctionnalités supplémentaires dans la suite de ce document.
</para>

<para>
Certains exemples utilisés ici proviennent de personnes qui désiraient des exemples de configuration.
L'anonymat de ces personnes est préservé de façon à les protéger contre d'éventuelles erreurs, 
et toute ressemblance avec des sites imaginaires n'existant pas est volontaire. 
</para>

</sect1>

<sect1>
<title>Sites où l'on trouve des exemples</title>

<para>
Dans la première série d'exemples de configuration, nous considérons que nous sommes dans le cas exceptionnel où le système est simple.
Il est très tentant de faire compliqué quand on peut faire simple.
</para> 

<para>
<link linkend="anon-ro"></link> apporte des informations sur le type de serveur qui pourrait suffire à fournir des images de CD-ROM,
ou qui pourrait référencer des fichiers de documentation pour l'utilisation d'un client réseau. 
Cette configuration est également abordée à <link linkend="StandAloneServer"></link>, <link linkend="RefDocServer"></link>. 
Le but de cette configuration est de fournir un volume partagé disponible en lecture seule pour tous, y compris les invités.
</para>

<para>
Le deuxième exemple décrit une configuration minimale pour un serveur d'impression auquel toute personne 
peut accéder pour imprimer à la condition d'avoir les bons pilotes installés sur son ordinateur. 
Voici un miroir du système décrit dans <link linkend="StandAloneServer"></link>, <link linkend="SimplePrintServer"></link>. 
</para>

<para>
L'exemple suivant porte sur un serveur d'impression et de fichiers de bureau sécurisés, qui sera seulement accessible aux utilisateurs
possèdant un compte sur le système. Ce serveur ressemble beaucoup à un serveur d'impression et de fichiers de groupes de travail, sauf qu'il
doit être plus sécurisé qu'une machine acceptant les accès anonymes. Cette catégorie de système convient particulièrement aux besoins d'un petit
bureau. Le serveur ne possède pas d'interface pour s'identifier sur le réseau et rien n'est fournit pour le contrôle du domaine; 
le serveur apparaît plus comme un simple NAS et un serveur d'impression.        
</para>

<para>
L'exemple d'après traîte de systèmes plus complexes qui peuvent soit s'intégrer dans des réseaux déjà en place de type MS Windows
ou soit les remplacer entièrement. On s'intéressera aux serveurs membres du domaine ainsi qu'au contrôle du domaine Samba (PDC/BDC).
Pour finir, l'exemple décrit de manière détaillée un grand réseau distribué avec des succursales distantes.
</para>

</sect1>

<sect1>
<title>Les exemples sélectionnés</title>        

<para>
Les exemples de configuration ont été choisis afin de traîter tous les aspects à prendre en compte pour faire fonctionner 
Samba. Nous n'avons pas traîté la configuration pour les plate-formes des systèmes d'exploitation de base, ce qui 
n'entrerait pas dans le cadre de ce texte.
</para>

<para>
On part également du principe que Samba a été installé correctement, soit par l'installation des paquetages fournis par votre 
revendeur de système d'exploitation ou par quelque autre moyen que ce soit. 
</para>

        <sect2>
        <title>Serveur autonome</title> 

        <para>
        Un serveur autonome implique simplement que ce n'est pas un contrôleur de domaine et qu'il ne participe donc
        pas au contrôle du domaine. Il peut s'agir d'un simple serveur de type workgroup, ou encore d'un serveur complexe jouant un rôle
        dans la sécurité du domaine.
        </para>
                
        <para>
        Au fur et à mesure des exemples, nous essayons d'améliorer au maximum les capacités du système, comme si nous devions 
        nous occuper d'une véritable entreprise avec un réseau toujours plus grand, et des besoins en perpétuel changement. 
        </para>
        
        
                <sect3 id="anon-ro">
                <title>Serveur de documents en lecture seule avec accès anonyme</title>
                
                <para>          
                L'objectif de ce type de serveur est de rendre disponible à tous les utilisateurs, tous les 
                documents ou fichiers qui ont été placés en ressources partagées. Les ressources partagées 
                peuvent être un lecteur de CD-ROM, une image de CD-ROM, ou un espace de stockage pour les fichiers.
                </para>         
                
                <itemizedlist>
                        
                        <listitem><para>
                        L'endroit où les fichiers seront partagés sera<filename>/export</filename>.
                        </para></listitem>                      
                        
                        <listitem><para>
                        Tous les fichiers appartiendront à un utilisateur nommé Jack Baumbach.
                        L'identifiant de Jack sera <emphasis>jackb</emphasis>. Son mot de passe sera
                        <emphasis>m0r3pa1n</emphasis> <!--&smbmdash;--> bien sûr, il ne s'agit que d'un exemple;
                        ne l'utilisez pas dans un environnement de production car tous les lecteurs de ce document
                        le connaîtront.
                        </para></listitem>
                
                </itemizedlist>

                <procedure>
                <title>Procédure d'installation: serveur en lecture seule</title>       
                                        
                        <step><para>
                        Ajoutez un utilisateur au système (avec la création du répertoire principale de cet utilisateur):
<screen>
<!--&rootprompt;--><userinput>useradd -c "Jack Baumbach" -m -g users -p m0r3pa1n jackb</userinput>
</screen>
                        </para></step>
                
                        <step><para>
                        Créez le répertoire, et attribuez les droits d'accès ainsi que le nom de l'utilisateur propriétaire:
<screen>
<!--&rootprompt;--><userinput>mkdir /export</userinput>
<!--&rootprompt;--><userinput>chmod u+rwx,g+rx,o+rx /export</userinput>
<!--&rootprompt;--><userinput>chown jackb.users /export</userinput>
</screen>
                        </para></step>
                
                        <step><para>
                        Copiez les fichiers destinés à être partagés dans le répertoire <filename>/export</filename>.                   
                        </para></step>
                                
                        <step><para>
                        Installez le fichier de configuration de Samba (<filename>/etc/samba/smb.conf</filename>)
                        comme décrit à l'adresse suivante : <link linkend="anon-example">Configuration d'un serveur en lecture seule
                        avec un accès anonyme</link>.
                        </para></step>
                
                
<example id="anon-example">
<title>Configuration d'un serveur en lecture seule et avec un accès anonyme</title>
<smbconfblock>
<smbconfcomment>Paramètres globaux</smbconfcomment>
<smbconfsection name="[global]"/>
<smbconfoption name="workgroup">MIDEARTH</smbconfoption>
<smbconfoption name="netbios name">HOBBIT</smbconfoption>
<smbconfoption name="security">share</smbconfoption>

<smbconfsection name="[data]"/>
<smbconfoption name="comment">Data</smbconfoption>
<smbconfoption name="path">/export</smbconfoption>
<smbconfoption name="read only">Yes</smbconfoption>
<smbconfoption name="guest ok">Yes</smbconfoption>
</smbconfblock>
</example>

                        <step><para>
                        Testez le fichier de configuration en exécutant la commande suivante:
<screen>
<!--&rootprompt;--><userinput>testparm</userinput>
</screen>
                        En revanche, si vous travaillez à partir d'un fichier de configuration maître nommé
                        <filename>smb.conf.master</filename>, la séquence de commandes suivante sera plus 
                        adaptée :
<screen>
<!--&rootprompt;--> cd /etc/samba
<!--&rootprompt;--> testparm -s smb.conf.master > smb.conf
<!--&rootprompt;--> testparm
</screen>
                        Notez tous les messages d'erreur qui ont pû apparaître. Ne poursuivez que si aucune erreur n'est signalée.
                        Voici un exemple classique d'une sortie qui sera générée par le fichier de configuration ci-dessus :
<screen>
Load smb config files from /etc/samba/smb.conf
Processing section "[data]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
<userinput>[Press enter]</userinput>
                        
# Global parameters
[global]
        workgroup = MIDEARTH
        netbios name = HOBBIT
        security = share
                        
[data]
        comment = Data
        path = /export
        read only = Yes
        guest only = Yes
</screen>
                        </para></step>

                        <step><para>
                        Lancez Samba en utilisant la méthode en vigueur pour la plate-forme de votre système d'exploitation. La méthode
                        à utiliser dépend de la plate-forme. Reportez-vous à <link linkend="startingSamba">Comment lancer Samba</link>
                        pour plus d'informations à ce sujet.
                        </para></step>
                
                        <step><para>
                        Configurez votre client MS Windnows pour les groupes de travail <emphasis>MIDEARTH</emphasis>,
                        donnez le nom ROBBINS à votre machine, redémarrez, attendez quelques minutes (entre 2 et 5 minutes),
                        ensuite ouvrez l'explorateur Windows et explorez le voisinage réseau.
                        La machine HOBBIT devrait être visible. Lorsque vous cliquez sur l'icône de la machine,
                        il vous ouvre l'accès aux <emphasis>données</emphasis> partagées. Après
                        avoir cliqué sur les données partagées, vous devez avoir accès aux fichiers placés précédemment
                        dans le répertoire <filename>/export</filename>.
                        </para></step>          
                
                </procedure>

                <para>
                Les informations ci-dessus (situées après # Paramètres globaux) fournissent le contenu
                entier du fichier <filename>/etc/samba/smb.conf</filename>.
                </para>         
                
                </sect3>

                <sect3>
                <title>Serveur de documents en lecture et écriture avec accès anonyme</title>
                
                <para>
                Il faut voir cette configuration comme une suite à l'exemple précédent.
                La différence est que l'accès partagé peut être imposé à l'utilisateur jackb et au groupe principal auquel jackb 
                appartient. On peut encore faire mieux et 
                ajouter l'utilisateur <emphasis>jackb</emphasis> au fichier <filename>smbpasswd</filename>.
                Pour faire cela, exécutez les commandes suivantes :
<screen>
<!--&rootprompt;--><userinput>smbpasswd -a jackb</userinput>
New SMB password: <userinput>m0r3pa1n</userinput>
Retype new SMB password: <userinput>m0r3pa1n</userinput>
Added user jackb.
</screen>
                L'ajout de cet utilisateur au fichier <filename>smbpasswd</filename> fait que, dans les Propriétés, il sera indiqué que tous ces fichiers 
                appartiennent à <emphasis>jackb</emphasis>
                et non à <emphasis>Utilisateur inconnu</emphasis>.
                
                <para>
                Le fichier <!--&smb.conf;-->, modifié et complété, peut être vu à l'adresse suivante <link linkend="anon-rw"/>.
                </para>
                                
<example id="anon-rw">
<title>Fichier smb.conf modifié en lecture et écriture avec un accès anonyme </title>   
<smbconfblock>
<smbconfcomment>Paramètres globaux</smbconfcomment>     
<smbconfsection name="[global]"/>
<smbconfoption name="workgroup">MIDEARTH</smbconfoption>
<smbconfoption name="netbios name">HOBBIT</smbconfoption>
<smbconfoption name="security">SHARE</smbconfoption>

<smbconfsection name="[data]"/>
<smbconfoption name="comment">Data</smbconfoption>
<smbconfoption name="path">/export</smbconfoption>
<smbconfoption name="force user">jackb</smbconfoption>
<smbconfoption name="force group">users</smbconfoption>
<smbconfoption name="read only">No</smbconfoption>
<smbconfoption name="guest ok">Yes</smbconfoption>
</smbconfblock>
</example>

                </sect3>

                <sect3>
                <title>Serveur d'impression anonyme</title>
                        
                <para>
                La mise en place d'un serveur d'impression anonyme a deux objectifs :
                </para>
                                
                <itemizedlist>
                        <listitem><para>
                        il permet aux utilisateurs de lancer des impressions sur toutes les imprimantes à partir d'un seul endroit.
                        </para></listitem>
                        
                        <listitem><para>
                        il réduit l'encombrement du réseau lorsque des utilisateurs tentent d'accéder à un nombre limité d'imprimantes.
                        </para></listitem>
                </itemizedlist>
                
                <para>
                Même pour les serveurs d'impression anonymes les plus simples, il est souvent nécessaire d'installer
                sur la station de travail Windows les bons pilotes pour l'imprimante. Dans ce cas là, le serveur d'impression
                doit être conçu uniquement pour transmettre les tâches d'impression au spouleur, 
                et ce dernier doit être configuré pour laisser passer l'information brute à l'imprimante. En d'autres termes, le 
                spouleur d'impression ne doit pas filtrer ou modifier le flux de données se dirigeant vers l'imprimante.
                </para>
                
                <para>
                Avec cette configuration, il n'est pas souhaitable de s'intéresser au "Add Printer Wizard", et comme nous ne voulons pas de 
                téléchargements automatiques de pilotes, nous le désactivons dans la configuration suivante.
                <link linkend="anon-print"></link> est le fichier qui en résulte <!--&smb.conf;-->.
                </para>
                
                
                
<example id="anon-print">
<title>Fichier smb.conf du serveur d'impression anonyme</title>
<smbconfblock>
<smbconfcomment>paramètres globaux</smbconfcomment>
<smbconfsection name="[global]"/>
<smbconfoption name="workgroup">MIDEARTH</smbconfoption>
<smbconfoption name="netbios name">LUTHIEN</smbconfoption>
<smbconfoption name="security">share</smbconfoption>
<smbconfoption name="printcap name">cups</smbconfoption>
<smbconfoption name="disable spoolss">Yes</smbconfoption>
<smbconfoption name="show add printer wizard">No</smbconfoption>
<smbconfoption name="printing">cups</smbconfoption>

<smbconfsection name="[printers]"/>
<smbconfoption name="comment">All Printers</smbconfoption>
<smbconfoption name="path">/var/spool/samba</smbconfoption>
<smbconfoption name="guest ok">Yes</smbconfoption>
<smbconfoption name="printable">Yes</smbconfoption>
<smbconfoption name="use client driver">Yes</smbconfoption>
<smbconfoption name="browseable">No</smbconfoption>
</smbconfblock>
</example>

                <para>
                La configuration ci-dessus est loin d'être parfaite. Elle ne permet pas l'utilisation de fonctionnalités avancées et 
                ne constitue pas une solution très élégante. Mais cela est voulu : elle est élémentaire et permet effectivement l'impression.
                Samba utilise les API d'impression directe fournies par CUPS.
                Une fois la compilation de Samba et l'édition des liens avec les bibliothèques de CUPS effectuées, le système d'impression par défaut
                sera CUPS. En attribuant la valeur CUPS à "printcap name", Samba utilisera les API des bibliothèques de CUPS 
                pour communiquer directement avec le CUPS et accéder à toutes les fonctions des imprimantes.
                Il est possible d'imposer l'utilisation de commandes d'impression externes en réglant la valeur 
                de <parameter>"printing"</parameter> soit à SYSV ou à BSD, et donc la valeur du 
                paramètre <parameter>"printcap name"</parameter> doit avoir une valeur différente de "CUPS".
                Dans ce cas là, ce dernier paramètre peut avoir comme valeur le nom de n'importe quel fichier qui
            contient une liste des imprimantes qui devront être rendues disponibles aux clients Windows.
                </para>
                
                <note><para>
                Les utilisateurs Windows devront installer une imprimante locale et ensuite modifier la fonctionnalité 
                impression vers périphérique [print to device] après l'installation des pilotes. L’impression vers périphérique
                peut ensuite être réglée sur l’imprimante du réseau pour cette machine.
                </para></note>
                
                <para>
                Vérifiez que le répertoire <filename>/var/spool/samba</filename> peut être utilisé comme voulu.
                Pour cela, vous devez suivre les étapes suivantes :
                </para>
                
                <itemizedlist>
                        <listitem><para>
                        Le répertoire doit appartenir au superutilisateur (root), utilisateur et groupe :
<screen>
<!--&rootprompt;--><userinput>chown root.root /var/spool/samba</userinput>
</screen>
                        </para></listitem>

                        <listitem><para>
                        Les droits d'accès doivent être configurés de manière à autoriser les lecture-écritures publiques en réglant
                        le bit de rappel [sticky bit], de la façon suivante :

<screen>
<!--&rootprompt;--><userinput>chmod a+twrx /var/spool/samba</userinput>
</screen>
                La configuration du bit de rappel a pour but de garantir qu'une personne non propriétaire du fichier d'impression
                temporaire ne puisse pas en prendre le contrôle, et donc d'éviter tout mauvais usage potentiel mal intentionné.
                        </para></listitem>
                </itemizedlist>
                
                <note><para>
                Sur les systèmes compatibles CUPS, il est possible de transférer directement les données brutes à
                l'imprimante sans traitement préalablement via les filtres d'impression CUPS. 
                Si on souhaite utiliser cette technique, il faut configurer un périphérique d'impression brute.
                Il est également nécessaire d'activer le gestionnaire de protocole mime pour les fichiers bruts dans les fichiers 
                <filename>/etc/mime.conv</filename> et <filename>/etc/mime.types</filename>.
                Vous pouvez vous reporter à <link linkend="cups-raw"></link>.           
                </para></note>
                
                </sect3>

                <sect3>
                <title>Serveur sécurisé d'impression et de fichiers en lecture-écriture</title>
                
                <para>
                Nous passons maintenant d'un système simple à un serveur légèrement plus compliqué.
                </para>
                
                <para>
                Notre nouveau serveur aura besoin d'un espace de stockage pour des données publiques, dans lequel seuls
                les utilisateurs authentifiés (c'est-à-dire ceux possédant un compte local) pourront stocker des fichiers, ainsi qu’un 
                répertoire local.
                Une imprimante devra être disponible afin de pouvoir être utilisée par tout le monde.
                </para>
                
                <para>
                Dans cet environnement hypothétique (il n’a pas été nécessaire de jouer aux espions pour obtenir ces informations),
                le site exige un environnement simple qui soit <emphasis>assez sécurisé</emphasis>
                mais pas trop compliqué à utiliser.
                </para>
                                
                <para>
                Les utilisateurs du site seront Jack Baumbach, Mary Orville, and Amed Sehkah. Chacun aura
                un mot de passe (qui ne sera pas montré dans les exemples ultérieurs). Mary sera l'administratrice de l'imprimante
                et sera propriétaire de tous les fichiers de l'espace publique partagé.
                </para>
                                
                <para>
                Cette configuration sera basée sur <emphasis>la sécurité niveau utilisateur</emphasis> qui correspond au 
                niveau par défaut, et pour lequel les mots de passes cryptés compatibles avec les systèmes Microsoft Windows seront stockés dans un
                fichier appelé <filename>/etc/samba/smbpasswd</filename>.
                L'entrée par défaut du fichier <!--&smb.conf;--> qui rend cela possible est 
                <smbconfoption name="passdb backend">smbpasswd, guest</smbconfoption>. Comme il s'agit d'une configuration par défault,
                il n'est pas nécessaire de modifier le fichier de configuration. Il est à noter que le backend de l'invité s'ajoute 
                à la liste des "passdb backends" actifs que cela soit spécifié dans le fichier de configuration de Samba ou non.
                </para>
                        
                <procedure>
                <title>Installation d'un serveur d'entreprise sécurisé</title>
                                        
                        <step><para>
                        Ajoutez tous les utilisateurs au système d'exploitation :
<screen>
<!--&rootprompt;--><userinput>useradd -c "Jack Baumbach" -m -g users -p m0r3pa1n jackb</userinput>
<!--&rootprompt;--><userinput>useradd -c "Mary Orville" -m -g users -p secret maryo</userinput>
<!--&rootprompt;--><userinput>useradd -c "Amed Sehkah" -m -g users -p secret ameds</userinput>
</screen>
                        </para></step>

                        <step><para>
                        Configurez le fichier Samba <!--&smb.conf;--> en suivant les indications données dans <link linkend="OfficeServer"/>.
                        </para></step>
                        
                        
<example id="OfficeServer">
<title>Fichier smb.conf du serveur d'entreprise sécurisé</title>
<smbconfblock>
<smbconfcomment>Paramètres globaux</smbconfcomment>
<smbconfsection name="[global]"/>
<smbconfoption name="workgroup">MIDEARTH</smbconfoption>
<smbconfoption name="netbios name">OLORIN</smbconfoption>
<smbconfoption name="printcap name">cups</smbconfoption>
<smbconfoption name="disable spoolss">Yes</smbconfoption>
<smbconfoption name="show add printer wizard">No</smbconfoption>
<smbconfoption name="printing">cups</smbconfoption>

<smbconfsection name="[homes]"/>
<smbconfoption name="comment">Home Directories</smbconfoption>
<smbconfoption name="valid users">%S</smbconfoption>
<smbconfoption name="read only">No</smbconfoption>
<smbconfoption name="browseable">No</smbconfoption>

<smbconfsection name="[public]"/>
<smbconfoption name="comment">Data</smbconfoption>
<smbconfoption name="path">/export</smbconfoption>
<smbconfoption name="force user">maryo</smbconfoption>
<smbconfoption name="force group">users</smbconfoption>
<smbconfoption name="read only">No</smbconfoption>

<smbconfsection name="[printers]"/>
<smbconfoption name="comment">All Printers</smbconfoption>
<smbconfoption name="path">/var/spool/samba</smbconfoption>
<smbconfoption name="printer admin">root, maryo</smbconfoption>
<smbconfoption name="create mask">0600</smbconfoption>
<smbconfoption name="guest ok">Yes</smbconfoption>
<smbconfoption name="printable">Yes</smbconfoption>
<smbconfoption name="use client driver">Yes</smbconfoption>
<smbconfoption name="browseable">No</smbconfoption>
</smbconfblock>
</example>

                        <step><para>
                        Initialisez la base de données avec les mots de passes Microsoft Windows des nouveaux utilisateurs :
<screen>
<!--&rootprompt;--><userinput>smbpasswd -a root</userinput>
New SMB password: <userinput>bigsecret</userinput>
Reenter smb password: <userinput>bigsecret</userinput>
Added user root.

<!--&rootprompt;--><userinput>smbpasswd -a jackb</userinput>
New SMB password: <userinput>m0r3pa1n</userinput>
Retype new SMB password: <userinput>m0r3pa1n</userinput>
Added user jackb.

<!--&rootprompt;--><userinput>smbpasswd -a maryo</userinput>
New SMB password: <userinput>secret</userinput>
Reenter smb password: <userinput>secret</userinput>
Added user maryo.

<!--&rootprompt;--><userinput>smbpasswd -a ameds</userinput>
New SMB password: <userinput>mysecret</userinput>
Reenter smb password: <userinput>mysecret</userinput>
Added user ameds.
</screen>
                        </para></step>
                        
                        <step><para>
                        Installez l'imprimante en utilisant l'interface Web de CUPS. Vérifiez que
                        toutes les imprimantes qui seront partagées avec les clients Microsoft Windows sont installées
                        comme périphériques d'impression brute.
                        </para></step>
                        
                        <step><para>
                        Démarrez Samba en utilisant l'interface administrative du système d'exploitation.
                        Samba peut également être démarré manuellement en exécutant :
                        <indexterm><primary>smbd</primary></indexterm>
                        <indexterm><primary>nmbd</primary></indexterm>
                        <indexterm><primary>starting samba</primary><secondary>smbd</secondary></indexterm>
                        <indexterm><primary>starting samba</primary><secondary>nmbd</secondary></indexterm>
<screen>
<!--&rootprompt;--><userinput> nmbd; smbd;</userinput>
</screen>
                        Ces deux applications s'exécutent automatiquement comme démons. Ceux qui sont paranoïaques
                        et qui tiennent à garder le contrôle peuvent ajouter l'option <constant>-D</constant> pour les forcer
                        à démarrer en mode démon.                       
                        </para></step>
                        
                        <step><para>
                        Configurez le répertoire <filename>/export</filename> :
<screen>
<!--&rootprompt;--><userinput>mkdir /export</userinput>
<!--&rootprompt;--><userinput>chown maryo.users /export</userinput>
<!--&rootprompt;--><userinput>chmod u=rwx,g=rwx,o-rwx /export</userinput>
</screen>
                        </para></step>
                        
                        <step><para>
                        Vérifiez que Samba fonctionne correctement :
<screen>
<!--&rootprompt;--><userinput>smbclient -L localhost -U%</userinput>
Domain=[MIDEARTH] OS=[UNIX] Server=[Samba-3.0.20]

Sharename      Type      Comment
---------      ----      -------
public         Disk      Data
IPC$           IPC       IPC Service (Samba-3.0.20)
ADMIN$         IPC       IPC Service (Samba-3.0.20)
hplj4          Printer   hplj4

Server               Comment
---------            -------
OLORIN               Samba-3.0.20

Workgroup            Master
---------            -------
MIDEARTH             OLORIN
</screen>
                        Le message d'erreur suivant indique que Samba ne s'est pas exécuté :
<screen>
<!--&rootprompt;--> smbclient -L olorin -U%
Error connecting to 192.168.1.40 (Connection refused)
Connection to olorin failed
</screen>
                        </para></step>
                                                
                        <step><para>
                        Connectez-vous à OLORIN en tant que maryo :
<screen>
<!--&rootprompt;--><userinput>smbclient //olorin/maryo -Umaryo%secret</userinput>
OS=[UNIX] Server=[Samba-3.0.20]
smb: \> <userinput>dir</userinput>
.                              D        0  Sat Jun 21 10:58:16 2003
..                             D        0  Sat Jun 21 10:54:32 2003
Documents                      D        0  Fri Apr 25 13:23:58 2003
DOCWORK                        D        0  Sat Jun 14 15:40:34 2003
OpenOffice.org                 D        0  Fri Apr 25 13:55:16 2003
.bashrc                        H     1286  Fri Apr 25 13:23:58 2003
.netscape6                    DH        0  Fri Apr 25 13:55:13 2003
.mozilla                      DH        0  Wed Mar  5 11:50:50 2003
.kermrc                        H      164  Fri Apr 25 13:23:58 2003
.acrobat                      DH        0  Fri Apr 25 15:41:02 2003

                55817 blocks of size 524288. 34725 blocks available
smb: \> <userinput>q</userinput>
</screen>
                        </para></step>

                </procedure>

                        <para>
                        Maintenant que vous devez avoir pigé comment faire, il est temps de s'intéresser à
                        des exemples légèrement plus compliqués. Pour le reste de ce chapitre, les instructions seront plus courtes 
                        puisqu’on a maintenant des exemples.
                        </para>
                                        
                </sect3>

        </sect2>

        <sect2>
        <title>Serveur membre du domaine</title>
        
        <para>
        Pour cette exemple, nous nous intéressons à la configuration de serveur la plus simple possible, 
        pouvant faire le bonheur du service de la comptabilité d’une entreprise. 
        Vous êtes prévenus : les utilisateurs sont des comptables, et ils sont parfois horriblement exigeants.
        Il y a un budget pour seulement un serveur dans ce département.
        </para>
        
        <para>
        Le réseau est géré par un Service Informatique (SI) interne, auquel nous appartenons.
        La politique interne appliquée est celle de toute organisation de taille moyenne; la Direction des Ressources Humaines 
        estime qu’elle dirige le SI parce qu’elle ajoute ou supprime constamment des utilisateurs.
        Les directeurs de département, eux, doivent se battre d’arrache-pied pour avoir un accès minimum aux ressources en réseau 
        pour leur personnel.
        Pour la Comptabilité, ce n’est pas la même chose : ils obtiennent en effet exactement ce qu'ils veulent.
        Voilà ! Le décor est planté.
        </para>
        
        <para>
        Nous utilisons les utilisateurs du dernier exemple. Le service de la comptabilité 
        possède une imprimante principale que tous les utilisateurs du service peuvent utiliser.
        Il y a également une imprimante pour les chèques, qui ne peut être utilisée que par la personne
        ayant la responsabilité d'imprimer des chèques. Le directeur financier veut que l'accès à cette imprimante soit rigoureusement réservé,
        et qu'elle se trouve dans la réserve personnelle attenante à son bureau. Cette imprimante
        doit être par conséquent accessible sur le réseau.      
        </para>

        <para>
        Le service de la comptabilité utilise une application comptable nommée <emphasis>SpytFull</emphasis>
        et qui doit être lancée à partir d'un serveur d'application central. La licence du logiciel ne permet 
        de l'exécuter que sur un seul serveur, il n'y a pas de composants de station de travail, et il s'exécute sur un espace partagé.
        Les données sont stockées dans un back-end SQL sous UNIX. Les gourous d'UNIX s'occupe de ça, ce n'est donc pas notre problème.
        </para>
        
        <para>
        La directrice du service de la comptabilité (maryo) veut un système de classement général ainsi qu'un 
        espace de stockage de fichiers séparé pour les lettres circulaires (les "nastygrams" et autres notes de service lapidaires). 
        L'espace pour les lettres doit être
        en lecture seule pour tout le personnel de la comptabilité excepté pour le directeur. Le système général de fichiers 
        doit avoir un agencement structuré avec un espace commun où tout le personnel peut pouvoir stocker les documents 
        d'intérêt général, ainsi qu'un espace personnel séparé de fichiers pour chaque membre de l'équipe. Il lui faut cependant avoir 
        accès à tous les espaces. Les utilisateurs doivent avoir un répertoire partagé principal privé pour les fichiers personnels
        liés à leur travail et pour de la documentation ne concernant pas le département.       
        </para>
        
                
                <sect3>
                <title>Exemple de configuration</title>
                                
                <para>
                Considérons <emphasis>valinor</emphasis> comme étant un serveur pour membre du domaine de notre entreprise.
                D’autre part, la comptabilité ne dispose que d’un serveur local, et les comptes des utilisateurs sont sur les contrôleurs de domaine,
                tout comme les profils de bureau et tous les fichiers stratégiques du réseau.           
                </para>
                
                <procedure>
                
                        <step><para>
                        N'ajoutez pas d'utilisateurs sur le serveur UNIX/Linux ; tout cela relève du domaine central.
                        </para></step>
                
                        <step><para>
                        Configurez le fichier <!--&smb.conf;--> comme décrit dans <link linkend="fast-member-server">smb.conf du serveur membre (configuration globale)</link> 
                        et dans <link linkend="fast-memberserver-shares">smb.conf du serveur membre (espace partagé et services)</link>.
                        </para></step>
                                                
<example id="fast-member-server">
<title>Fichier smb.conf du serveur membre (configuration globale)</title>
<smbconfblock>
<smbconfcomment>Paramètres globaux</smbconfcomment>
<smbconfsection name="[global]"/>
<smbconfoption name="workgroup">MIDEARTH</smbconfoption>
<smbconfoption name="netbios name">VALINOR</smbconfoption>
<smbconfoption name="security">DOMAIN</smbconfoption>
<smbconfoption name="printcap name">cups</smbconfoption>
<smbconfoption name="disable spoolss">Yes</smbconfoption>
<smbconfoption name="show add printer wizard">No</smbconfoption>
<smbconfoption name="idmap uid">15000-20000</smbconfoption>
<smbconfoption name="idmap gid">15000-20000</smbconfoption>
<smbconfoption name="winbind use default domain">Yes</smbconfoption>
<smbconfoption name="printing">cups</smbconfoption>
</smbconfblock>
</example>

<example id="fast-memberserver-shares">
<title>Fichier smb.conf du serveur membre (espace partagé et services)</title>
<smbconfblock>
<smbconfsection name="[homes]"/>
<smbconfoption name="comment">Home Directories</smbconfoption>
<smbconfoption name="valid users">%S</smbconfoption>
<smbconfoption name="read only">No</smbconfoption>
<smbconfoption name="browseable">No</smbconfoption>

<smbconfsection name="[spytfull]"/>
<smbconfoption name="comment">Accounting Application Only</smbconfoption>
<smbconfoption name="path">/export/spytfull</smbconfoption>
<smbconfoption name="valid users">@Accounts</smbconfoption>
<smbconfoption name="admin users">maryo</smbconfoption>
<smbconfoption name="read only">Yes</smbconfoption>

<smbconfsection name="[public]"/>
<smbconfoption name="comment">Data</smbconfoption>
<smbconfoption name="path">/export/public</smbconfoption>
<smbconfoption name="read only">No</smbconfoption>

<smbconfsection name="[printers]"/>
<smbconfoption name="comment">All Printers</smbconfoption>
<smbconfoption name="path">/var/spool/samba</smbconfoption>
<smbconfoption name="printer admin">root, maryo</smbconfoption>
<smbconfoption name="create mask">0600</smbconfoption>
<smbconfoption name="guest ok">Yes</smbconfoption>
<smbconfoption name="printable">Yes</smbconfoption>
<smbconfoption name="use client driver">Yes</smbconfoption>
<smbconfoption name="browseable">No</smbconfoption>
</smbconfblock>
</example>

                        <step><para>
                        Rejoignez le domaine. Attention : ne démarrez pas Samba avant que cette étape ne soit achevée !
<screen>
<!--&rootprompt;--><userinput>net rpc join -Uroot%'bigsecret'</userinput>
Joined domain MIDEARTH.
</screen>
                        </para></step>
                                                
                        <step><para>
                        Vérifiez que vous avez vraiment bien arreté le démon <command>nscd</command>
                        sur tous les systèmes sur lesquels <command>winbind</command> est configuré pour être exécuté.
                        </para></step>
                        
                        <step><para>
                        Démarrez Samba en suivant la méthode relative à la plate-forme de votre système d'exploitation.
                        Si vous désirez le faire manuellement, exécutez ces commandes en mode root :
                        <indexterm><primary>smbd</primary></indexterm>
                        <indexterm><primary>nmbd</primary></indexterm>
                        <indexterm><primary>winbindd</primary></indexterm>
                        <indexterm><primary>starting samba</primary><secondary>smbd</secondary></indexterm>
                        <indexterm><primary>starting samba</primary><secondary>nmbd</secondary></indexterm>
                        <indexterm><primary>starting samba</primary><secondary>winbindd</secondary></indexterm>
<screen>
<!--&rootprompt;--><userinput>nmbd; smbd; winbindd;</userinput>
</screen>
                        </para></step>
                                                
                        <step><para>
                        Configurez le fichier de contrôle du "name service switch" (NSS) sur votre système pour gérer les noms des utilisateurs
                        et des groupes via winbind. Editez les lignes suivantes dans <filename>/etc/nsswitch.conf</filename>:
<programlisting>
passwd: files winbind
group:  files winbind
hosts:  files dns winbind
</programlisting>
                        </para></step>
                        
                        <step><para>
                        Choisissez le mot de passe à utiliser pour <command>wbinfo</command> :
<screen>
<!--&rootprompt;--><userinput>wbinfo --set-auth-user=root%'bigsecret'</userinput>
</screen>
                        </para></step>
                                                
                        <step><para>
                        Vérifiez que cet utilisateur du domaine et les identités des groupes sont définies correctement en exécutant :
<screen>
<!--&rootprompt;--><userinput>wbinfo -u</userinput>
MIDEARTH\maryo
MIDEARTH\jackb
MIDEARTH\ameds
...
MIDEARTH\root

<!--&rootprompt;--><userinput>wbinfo -g</userinput>
MIDEARTH\Domain Users
MIDEARTH\Domain Admins
MIDEARTH\Domain Guests
...
MIDEARTH\Accounts
</screen>
                        </para></step>                  

                        <step><para>
                        Vérifiez que <command>winbind</command> est en cours de fonctionnement. Ce qui suit correspond à une 
                        résolution correcte de nom d'utilisateur via l’utilitaire système <command>getent</command> :
<screen>
<!--&rootprompt;--><userinput>getent passwd maryo</userinput>
maryo:x:15000:15003:Mary Orville:/home/MIDEARTH/maryo:/bin/false
</screen>
                        </para></step>
                        
                        <step><para>
                        Pour finir, faisons un test montrant que la situation est sous contrôle, juste pour se rassurer :
<screen>
<!--&rootprompt;--><userinput>touch /export/a_file</userinput>
<!--&rootprompt;--><userinput>chown maryo /export/a_file</userinput>
<!--&rootprompt;--><userinput>ls -al /export/a_file</userinput>
...
-rw-r--r--    1 maryo    users       11234 Jun 21 15:32 a_file
...

<!--&rootprompt;--><userinput>rm /export/a_file</userinput>
</screen>
                        </para></step>
                                                
                        <step><para>
                        La configuration est maintenant presque terminée, il est donc temps
                        de configurer la structure de répertoires pour ce site :
<screen>
<!--&rootprompt;--><userinput>mkdir -p /export/{spytfull,public}</userinput>
<!--&rootprompt;--><userinput>chmod ug=rwxS,o=x /export/{spytfull,public}</userinput>
<!--&rootprompt;--><userinput>chown maryo.Accounts /export/{spytfull,public}</userinput>
</screen>
                        </para></step>
                </procedure>

                </sect3>

        </sect2>

        <sect2>
        <title>Contrôleur de domaine</title>
        
        <para>
        Pour le reste de ce chapitre, nous allons nous intéresser plus particulièrement à la configuration du contrôleur de domaine.
        Les exemples qui suivent montrent deux stratégies d'implémentation. Souvenez-vous, notre objectif est
        de créer une solution simple mais opérationnelle. Plus loin dans ce livre, on aura l’occasion d’aborder des fonctionnalités plus étendues 
        et la complexité qui va avec.
        </para>
        
        <para>
        Une configuration de contrôleur de domaine peut être réalisée simplement, en utilisant le nouveau fichier de gestion 
        des mots de passe tdbsam. Ce type de configuration convient aux petites entreprises, cependant 
        son aptitude pour passer à l'échelle est limitée (pas de possibilité de duplication), et on peut s'attendre à ce que
        ses performances chutent lorsque la taille et la complexité du domaine augmenteront.
        </para>
        
        <para>
        L'utilisation de tdbsam convient mieux aux sites ne nécessitant qu'un
        contrôleur de domaine primaire (PDC [Primary Domain Controller]). Lorsque la taille d'un domaine augmentera, le besoin
        d'ajouter des contrôleurs de domaine se fera sentir. Dans un environnement en réseau Microsoft Wondows, 
        il vaut mieux éviter de se trouver limité en ressources ; les contrôleurs de domaine fournissent des services d'authentification essentiels.
        Les conséquences de ne pas accorder assez de ressources à l'environnement de contrôle de domaine sont les suivantes :
        </para>
        
        <itemizedlist>  
                <listitem><para>
                 Les connexions au domaine échouent de façon intermittente.
                </para></listitem>

                <listitem><para>
                L'accès au fichier sur un serveur membre du domaine échoue de façon intermittente, avec un message 
                d'erreur sur les droits d'accès.
                </para></listitem>
        </itemizedlist>
        
        <para>
        Une possibilité de backend d'authentification du contrôleur de domaine plus extensible existe avec 
        Microsoft Active Directory ou un backend basé sur LDAP. Samba-3 fournit 
        pour ces deux possibilités l'équivalent d'un serveur membre du domaine. 
        </para>
        
        <para>
        Le backend d'authentification tdbsam ne fournit rien pour dupliquer le contenu de la base de données,
        excepté par des moyens externes (c’est-à-dire, il n'y a pas de protocole autonome dans Samba-3 pour la duplication de la base 
        de données de Security Account Manager [SAM]).
        </para>
                
        <note><para>
        Si un seul contrôleur de domaine ne vous suffit pas, n'utilisez pas un backend d'authentification tdbsam.
        </para></note>
        
                <sect3>
                <title>Exemple: Bureau d'ingénieurs</title>
                
                <para>
                Le serveur de réseau du bureau d'ingénieurs que nous présentons ici, est conçu pour montrer comment utiliser
                le nouveau backend du mot de passe de tdbsam. Pour Samba-3, l’outil tdbsam est nouveau.
                Il a été conçu pour fournir de multiples contrôles de comptes utilisateur et machine réalisables 
                avec Microsoft Windows NT4. Il peut être utilisé sans danger pour des petits réseaux.
                </para>
                
                <procedure>
                
                        <step><para>
                        On trouvera une configuration PDC fonctionnelle utilisant le gestionnaire de mots de passe tdbsam 
                        dans <link linkend="fast-engoffice-global">le fichier smb.conf du bureau d'ingénieurs (foncionnement global)
                        </link> ainsi que dans <link linkend="fast-engoffice-shares">le fichier smb.conf du bureau d'ingénieurs(espace partagé et services)</link>:
                        </para></step>
                
<example id="fast-engoffice-global">
<title>Fichier smb.conf du bureau d'ingénieurs (fonctionnement global)</title>
<smbconfblock>
<smbconfsection name="[global]"/>
<smbconfoption name="workgroup">MIDEARTH</smbconfoption>
<smbconfoption name="netbios name">FRODO</smbconfoption>
<smbconfoption name="passdb backend">tdbsam</smbconfoption>
<smbconfoption name="printcap name">cups</smbconfoption>
<smbconfoption name="add user script">/usr/sbin/useradd -m %u</smbconfoption>
<smbconfoption name="delete user script">/usr/sbin/userdel -r %u</smbconfoption>
<smbconfoption name="add group script">/usr/sbin/groupadd %g</smbconfoption>
<smbconfoption name="delete group script">/usr/sbin/groupdel %g</smbconfoption>
<smbconfoption name="add user to group script">/usr/sbin/groupmod -A %u %g</smbconfoption>
<smbconfoption name="delete user from group script">/usr/sbin/groupmod -R %u %g</smbconfoption>
<smbconfoption name="add machine script">/usr/sbin/useradd -s /bin/false -d /var/lib/nobody %u</smbconfoption>
<smbconfcomment>Remarque: ce qui suit spécifie le script de connexion par défault.</smbconfcomment>
<smbconfcomment>Pour chaque utilisateur, les scripts de connexions peuvent être spécifiés dans le compte de 
                                l'utilisateur en utilisant pdbedit</smbconfcomment>
<smbconfoption name="logon script">scripts\logon.bat</smbconfoption>
<smbconfcomment>Ceci spécifie le chemin du profil par défaut. Spécifiez les chemins pour chaque utilisateur avec pdbedit</smbconfcomment>
<smbconfoption name="logon path">\\%L\Profiles\%U</smbconfoption>
<smbconfoption name="logon drive">H:</smbconfoption>
<smbconfoption name="logon home">\\%L\%U</smbconfoption>
<smbconfoption name="domain logons">Yes</smbconfoption>
<smbconfoption name="os level">35</smbconfoption>
<smbconfoption name="preferred master">Yes</smbconfoption>
<smbconfoption name="domain master">Yes</smbconfoption>
<smbconfoption name="idmap uid">15000-20000</smbconfoption>
<smbconfoption name="idmap gid">15000-20000</smbconfoption>
<smbconfoption name="printing">cups</smbconfoption>
</smbconfblock>
</example>

<example id="fast-engoffice-shares">
<title>Fichier smb.conf du bureau d'ingénieurs (espace partagé et services)</title>
<smbconfblock>
<smbconfsection name="[homes]"/>
<smbconfoption name="comment">Home Directories</smbconfoption>
<smbconfoption name="valid users">%S</smbconfoption>
<smbconfoption name="read only">No</smbconfoption>
<smbconfoption name="browseable">No</smbconfoption>

<smbconfcomment>Impression partagée automatiquement (rend les imprimantes disponibles par l’intermédiaire de CUPS)</smbconfcomment>
<smbconfsection name="[printers]"/>
<smbconfoption name="comment">All Printers</smbconfoption>
<smbconfoption name="path">/var/spool/samba</smbconfoption>
<smbconfoption name="printer admin">root, maryo</smbconfoption>
<smbconfoption name="create mask">0600</smbconfoption>
<smbconfoption name="guest ok">Yes</smbconfoption>
<smbconfoption name="printable">Yes</smbconfoption>
<smbconfoption name="browseable">No</smbconfoption>

<smbconfsection name="[print$]"/>
<smbconfoption name="comment">Printer Drivers Share</smbconfoption>
<smbconfoption name="path">/var/lib/samba/drivers</smbconfoption>
<smbconfoption name="write list">maryo, root</smbconfoption>
<smbconfoption name="printer admin">maryo, root</smbconfoption>

<smbconfcomment>Nécessaire pour le support des connexions au domaine</smbconfcomment>
<smbconfsection name="[netlogon]"/>
<smbconfoption name="comment">Network Logon Service</smbconfoption>
<smbconfoption name="path">/var/lib/samba/netlogon</smbconfoption>
<smbconfoption name="admin users">root, maryo</smbconfoption>
<smbconfoption name="guest ok">Yes</smbconfoption>
<smbconfoption name="browseable">No</smbconfoption>

<smbconfcomment>Pour que les profils puissent fonctionner, créez un répertoire d'utilisateurs sous le chemin</smbconfcomment>
<smbconfcomment> décrit. i.e., mkdir -p /var/lib/samba/profiles/maryo</smbconfcomment>
<smbconfsection name="[Profiles]"/>
<smbconfoption name="comment">Roaming Profile Share</smbconfoption>
<smbconfoption name="path">/var/lib/samba/profiles</smbconfoption>
<smbconfoption name="read only">No</smbconfoption>
<smbconfoption name="profile acls">Yes</smbconfoption>

<smbconfcomment>D'autres définitions de ressources (partage/imprimante) apparaîtraient ici.</smbconfcomment>
</smbconfblock>
</example>



                        <step><para>
                        Créez des comptes pour les groupes UNIX dont vous avez besoin en utilisant l'outil adéquat de votre système d'exploitation :
<screen>
<!--&rootprompt;--><userinput>groupadd ntadmins</userinput>
<!--&rootprompt;--><userinput>groupadd designers</userinput>
<!--&rootprompt;--><userinput>groupadd engineers</userinput>
<!--&rootprompt;--><userinput>groupadd qateam</userinput>
</screen>
                        </para></step>  

                        <step><para>
                        Créez les comptes des utilisateurs sur le système en utilisant l'outil adéquat
                        fourni par votre système d'exploitation. Vérifiez que tous les répertoires locaux des utilisateurs
                        ont également été créés. Ajoutez les utilisateurs aux groupes par rapport à leurs droits d'accès
                        sur les fichiers, sur les répertoires, sur les imprimantes, et par rapport à leur utilisation 
                        de l'environnement Samba.
                        </para></step>
                        
                        <step><para>                    
                        Affectez chacun des goupes UNIX aux groupes NT en exécutant ce script shell
                        (Vous pouvez nommer ce script <filename>initGroups.sh</filename>):
<screen>
#!/bin/bash
#### Conservez ce script shell pour le réutiliser ultérieurement
                        
# Premièrement on affecte les groupes connus
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmins rid=512 type=d
net groupmap add ntgroup="Domain Users"  unixgroup=users rid=513 type=
net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d

# Maintenant on affecte nos groupes de domaine ajoutés
net groupmap add ntgroup="Designers" unixgroup=designers type=d
net groupmap add ntgroup="Engineers" unixgroup=engineers type=d
net groupmap add ntgroup="QA Team"   unixgroup=qateam    type=d
</screen>
                        </para></step>                  
                        
                        <step><para>
                        Créez le répertoire des <filename>scripts</filename> pour pouvoir les utiliser dans 
                        <smbconfsection name="[NETLOGON]"/> l'espace partagé :
<screen>
<!--&rootprompt;--><userinput>mkdir -p /var/lib/samba/netlogon/scripts</userinput>
</screen>
                        Mettez les scripts de connexion qui seront utilisés (les scripts batch ou cmd)
                        dans ce répertoire.
                        </para></step>
                                                
                </procedure>

                <para>
                La configuration ci-dessus fournit un système PDC opérationnel
                auquelle doivent être ajoutés les partages de fichiers et les imprimantes dont on a besoin.
                </para>
                                
                </sect3>

                <sect3>
                <title>Une grosse entreprise</title>
                
                <para>
                Dans cette section, nous allons enfin avoir l'opportunité de passer brièvement en revue une configuration
                de Samba-3 qui utilise un backend d'authentification LDAP [Lightweight Directory Access]. Les raisons principales de ce choix sont de 
                fournir la possibilité d'organiser les domaines de contrôle primaire et de sauvegarde (BDC) [Backup Domain Control], ainsi que 
                de pouvoir davantage adapter les capacités du système afin de satisfaire les besoins d'un environnement très réparti.           
                </para>
                
                        <sect4>
                        <title>Le contrôleur de domaine primaire</title>
                        
                        <para>
                        Il s'agit d'un exemple de configuration minimale pour faire fonctionner un PDC de Samba-3
                        en utilisant un backend d'authentification LDAP. On suppose que le système d'exploitation
                        a été correctement configuré.
                        </para>
                        
                        <para>
                        Les scripts Idealx (ou équivalent) sont utiles pour manier POSIX et/ou SambaSamAccounts basé sur LDAP.
                        Les scripts Idealx peuvent être téléchargés à partir du site Web <ulink url="http://www.idealx.org">
                        Idealx</ulink>. On peut aussi les récupérer dans les fichiers tarball de Samba. Avec les distributions Linux, les scripts Idealx 
                        sont en général installés dans le répertoire <filename>/usr/share/doc/packages/sambaXXXXXX/examples/LDAP/smbldap-tools</filename>.
                        On sait que les scripts Idealx de la version <constant>smbldap-tools-0.9.1</constant> fonctionnent bien.
                        </para>
                                                
                        <procedure>
                        
                                <step><para>
                                Récupérez à partir des sources Samba <filename>~/examples/LDAP/samba.schema</filename>
                                et copiez le dans le répertoire <filename>/etc/openldap/schema/</filename>.
                                </para></step>
                        
                                <step><para>
                                Paramétrez le serveur LDAP. Cet exemple convient pour OpenLDAP 2.1.x.
                                Voici le fichier <filename>/etc/openldap/slapd.conf</filename> :
                                
<title>Exemple du fichier slapd.conf</title>
<screen>
# Vous pouvez remarquer que les lignes décommentées ont été supprimées
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/samba.schema

pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args

database        bdb
suffix          "dc=quenya,dc=org"
rootdn          "cn=Manager,dc=quenya,dc=org"
rootpw          {SSHA}06qDkonA8hk6W6SSnRzWj0/pBcU3m0/P
# Le mot de passe correspondant à la partie ci-dessus est 'nastyon3'

directory     /var/lib/ldap

index   objectClass     eq
index cn                      pres,sub,eq
index sn                      pres,sub,eq
index uid                     pres,sub,eq
index displayName             pres,sub,eq
index uidNumber               eq
index gidNumber               eq
index memberUid               eq
index   sambaSID              eq
index   sambaPrimaryGroupSID  eq
index   sambaDomainName       eq
index   default               sub
</screen>
                                </para></step>
                                
                                <step><para>
                                Créez le fichier <filename>initdb.ldif</filename> suivant :
                                
<programlisting>
# Organisation pour la démo de SambaXP
dn: dc=quenya,dc=org
objectclass: dcObject
objectclass: organization
dc: quenya
o: SambaXP Demo
description: arbre LDAP de la démo de SambaXP

# Rôle pour l'administration de LDAP
dn: cn=Manager,dc=quenya,dc=org
objectclass: organizationalRole
cn: Manager
description: Administrateur LDAP

# Paramétrage du conteneur pour les utilisateurs
dn: ou=People, dc=quenya, dc=org
objectclass: top
objectclass: organizationalUnit
ou: People

# Paramétrage d’un identifiant d'admin pour les personnes OU
dn: cn=admin, ou=People, dc=quenya, dc=org
cn: admin
objectclass: top
objectclass: organizationalRole
objectclass: simpleSecurityObject
userPassword: {SSHA}0jBHgQ1vp4EDX2rEMMfIudvRMJoGwjVb
# Le mot de passe correspondant à la partie ci-dessus est 'mordonL8'
</programlisting>
                                </para></step>

                                <step><para>
                                Chargez les données initiales ci-dessus dans la base de données LDAP : 
<screen>
<!--&rootprompt;--><userinput>slapadd -v -l initdb.ldif</userinput>
</screen>
                                </para></step>                                                          

                                <step><para>
                                Démarrez le serveur LDAP en utilisant l'outil ou la méthode adapté(e) à la plate-forme 
                                du système d'exploitation sur laquelle il est installé.                         
                                </para></step>
                                                                
                                <step><para>
                                Installez les fichiers des scripts Idealx dans le répertoire <filename>/usr/local/sbin</filename>,
                                configurez ensuite le fichier smbldap_conf.pm afin de les rendre fonctionnels sur votre configuration système.
                                </para></step>
                                
                                <step><para>
                                Le fichier <!--&smb.conf;--> qui pilote ce backend se trouve dans l'exemple du <link
                                linkend="fast-ldap">fichier smb.conf du backend LDAP pour le PDC</link>. Ajoutez les strophes supplémentaires 
                                en fonction de vos besoins.
                                </para></step>          

<example id="fast-ldap">
<title>fichier smb.conf du backend LDAP pour le PDC</title>
<smbconfblock>
<smbconfcomment>paramètres globaux</smbconfcomment>
<smbconfsection name="[global]"/>
<smbconfoption name="workgroup">MIDEARTH</smbconfoption>
<smbconfoption name="netbios name">FRODO</smbconfoption>
<smbconfoption name="passdb backend">ldapsam:ldap://localhost</smbconfoption>
<smbconfoption name="username map">/etc/samba/smbusers</smbconfoption>
<smbconfoption name="printcap name">cups</smbconfoption>
<smbconfoption name="add user script">/usr/local/sbin/smbldap-useradd -m '%u'</smbconfoption>
<smbconfoption name="delete user script">/usr/local/sbin/smbldap-userdel %u</smbconfoption>
<smbconfoption name="add group script">/usr/local/sbin/smbldap-groupadd -p '%g'</smbconfoption>
<smbconfoption name="delete group script">/usr/local/sbin/smbldap-groupdel '%g'</smbconfoption>
<smbconfoption name="add user to group script">/usr/local/sbin/smbldap-groupmod -m '%u' '%g'</smbconfoption>
<smbconfoption name="delete user from group script">/usr/local/sbin/smbldap-groupmod -x '%u' '%g'</smbconfoption>
<smbconfoption name="set primary group script">/usr/local/sbin/smbldap-usermod -g '%g' '%u'</smbconfoption>
<smbconfoption name="add machine script">/usr/local/sbin/smbldap-useradd -w '%u'</smbconfoption>
<smbconfoption name="logon script">scripts\logon.bat</smbconfoption>
<smbconfoption name="logon path">\\%L\Profiles\%U</smbconfoption>
<smbconfoption name="logon drive">H:</smbconfoption>
<smbconfoption name="logon home">\\%L\%U</smbconfoption>
<smbconfoption name="domain logons">Yes</smbconfoption>
<smbconfoption name="os level">35</smbconfoption>
<smbconfoption name="preferred master">Yes</smbconfoption>
<smbconfoption name="domain master">Yes</smbconfoption>
<smbconfoption name="ldap suffix">dc=quenya,dc=org</smbconfoption>
<smbconfoption name="ldap machine suffix">ou=People</smbconfoption>
<smbconfoption name="ldap user suffix">ou=People</smbconfoption>
<smbconfoption name="ldap group suffix">ou=People</smbconfoption>
<smbconfoption name="ldap idmap suffix">ou=People</smbconfoption>
<smbconfoption name="ldap admin dn">cn=Manager</smbconfoption>
<smbconfoption name="ldap ssl">no</smbconfoption>
<smbconfoption name="ldap passwd sync">Yes</smbconfoption>
<smbconfoption name="idmap uid">15000-20000</smbconfoption>
<smbconfoption name="idmap gid">15000-20000</smbconfoption>
<smbconfoption name="printing">cups</smbconfoption>
</smbconfblock>
</example>

                                <step><para>
                                Ajoutez le mot de passe LDAP dans le fichier <filename>secrets.tdb</filename> de façon à ce que Samba puisse mettre à jour
                                la base de données LDAP :
<screen>
<!--&rootprompt;--><userinput>smbpasswd -w mordonL8</userinput>
</screen>
                                </para></step>
                                                        
                                <step><para>
                                Ajoutez les utilisateurs et les groupes qu’il faut. Les utilisateurs et les groupes ajoutés 
                                utilisant les outils Samba seront automatiquement ajoutés à la fois au backend LDAP et 
                                au système d'exploitation.
                                </para></step>                                                  

                        </procedure>

                        </sect4>

                        <sect4>
                        <title>Le contrôleur de domaine de sauvegarde</title>
                        
                        <para>
                        <link linkend="fast-bdc"/> montre l’exemple de configuration pour le BDC. Notez que
                        le fichier <!--&smb.conf;--> ne spécifie pas les scripts de smbldap-tools, ils ne sont pas
                        nécessaires sur un BDC. Ajoutez les strophes pour les fichiers partagés et les imprimantes.
                        </para>
                                                
                        <procedure>
                        
                                <step><para>
                                Le BDC peut avoir son propre serveur LDAP. Si c’est ce que vous préférez, modifiez le fichier <!--&smb.conf;--> suivant comme indiqué. 
                                Sinon, la configuration par défaut dans le <link linkend="fast-bdc">fichier smb.conf du BDC LDAP à distance</link>
                                utilise un serveur central LDAP.
                                </para></step>
                        
<example id="fast-bdc">
<title>fichier smb.conf du BDC LDAP à distance</title>
<smbconfblock>
<smbconfcomment>paramètres globaux</smbconfcomment>
<smbconfsection name="[global]"/>
<smbconfoption name="workgroup">MIDEARTH</smbconfoption>
<smbconfoption name="netbios name">GANDALF</smbconfoption>
<smbconfoption name="passdb backend">ldapsam:ldap://frodo.quenya.org</smbconfoption>
<smbconfoption name="username map">/etc/samba/smbusers</smbconfoption>
<smbconfoption name="printcap name">cups</smbconfoption>
<smbconfoption name="logon script">scripts\logon.bat</smbconfoption>
<smbconfoption name="logon path">\\%L\Profiles\%U</smbconfoption>
<smbconfoption name="logon drive">H:</smbconfoption>
<smbconfoption name="logon home">\\%L\%U</smbconfoption>
<smbconfoption name="domain logons">Yes</smbconfoption>
<smbconfoption name="os level">33</smbconfoption>
<smbconfoption name="preferred master">Yes</smbconfoption>
<smbconfoption name="domain master">No</smbconfoption>
<smbconfoption name="ldap suffix">dc=quenya,dc=org</smbconfoption>
<smbconfoption name="ldap machine suffix">ou=People</smbconfoption>
<smbconfoption name="ldap user suffix">ou=People</smbconfoption>
<smbconfoption name="ldap group suffix">ou=People</smbconfoption>
<smbconfoption name="ldap idmap suffix">ou=People</smbconfoption>
<smbconfoption name="ldap admin dn">cn=Manager</smbconfoption>
<smbconfoption name="ldap ssl">no</smbconfoption>
<smbconfoption name="ldap passwd sync">Yes</smbconfoption>
<smbconfoption name="idmap uid">15000-20000</smbconfoption>
<smbconfoption name="idmap gid">15000-20000</smbconfoption>
<smbconfoption name="printing">cups</smbconfoption>
</smbconfblock>
</example>

                                <step><para>
                                Configurez les répertoires NETLOGON et PROFILES de la même manière que le PDC dans <link linkend="fast-bdc"/>.
                                </para></step>
                                
                        </procedure>

                        </sect4>

                </sect3>

        </sect2>

</sect1>

</chapter>

Site hébergé sur un Cloud Public IKOULA Ikoula