2.4.6 Un serveur Samba contrôleur de domaine
2.4.6.1 Un serveur Samba contrôleur de domaine
Samba peut simuler/émuler un
serveur NT jusque dans ses
possibilités d'exécution de scripts
au login des clients.
Cela permet entre autres:
- de créer automatiquement des lecteurs
réseau adaptés aux différents utilisateurs
- d'appliquer des stratégies différentes selon les
utilisateurs à l'aide de clés de registre et autres
commandes M$DO$ (route
add/delete,...)
- de remettre les clients à l'heure du
serveur.
Attention: Il ne peut y avoir qu'un
seul Contrôleur Principal de Domaine
par domaine!
Dans le cadre d'un stage ou d'un réseau devant disposer de
plusieurs PDC, veiller à
déclarer des domaines différents pour les
différents serveurs.
C'est la ligne workgroup du fichier smb.conf qui définit aussi bien le
domaine que le groupe de travail.
Il suffit pour cela d'ajouter trois lignes à la section [global] et un partage particulier [netlogon]:
#============= Global Settings ================= [global] workgroup = MaMaison netbios name = LeJoliServeur hosts allow = 192.168.52. 127. security = user domain master = yes domain logons = yes logon script = script%U.bat client code page = 850 character set = ISO8859-1 #=============== Share Definitions ================ [public] comment = Dossier public path = /home/samba/public browseable = yes public = yes writable = yes [homes] comment = Home Directories browseable = no writable = yes [profs] comment = Ressources profs path = /home/samba/profs browseable = yes ;public = no writable = yes valid users = @professeurs [instructions] comment = Ressources et instructions à disposition des élèves path = /home/samba/ressources browseable = yes ;public = yes writable = no write list = @professeurs [netlogon] comment = Network Logon Service path = /home/samba/netlogon guest ok = yes writable = yes |
Les deux lignes domain master = yes et domain logons = yes permettent de faire du
serveur samba un Contrôleur
de Domaine.
La ligne logon script = script%U.bat
précise le nom du script à exécuter au login de
l'utilisateur (%U
désigne le nom fourni lors de la connexion, si bien que l'on
pourra réaliser des scripts différents selon
l'utilisateur).
Le partage [netlogon] sert à
stocker les scripts de connexion des utilisateurs, les
stratégies et un certain nombre d'autres bricoles (nous en verrons quelques unes par la suite).
Dans un premier temps, on déclare ce partage [netlogon] comme writable.
Remarque:
Dans le cas d'un client W$nt, W$2k ou W$xp, il
faut en plus un compte pour la machine depuis laquelle on se
connecte.
Ce ne sont pas les seules contraintes et nous ne détaillerons
pas davantage ici (au moins dans la
première version de ces pages) ce qu'il faut pour
qu'un client de ce type se connecte sur un domaine
samba.
<Parler aussi de logon drive, logon home,...>
Pour plus de précisions, voir Samba_PDC_2000
de Ewen Prigent et les autres
ressources référencées en fin de page.
Penser à créer le dossier /home/samba/netlogon
et à le rendre accessible à tous et dans un premier temps
avec tous les droits:
[root@DeepGlue steph]# mkdir /home/samba/netlogon
[root@DeepGlue steph]# chmod 777 /home/samba/netlogon
Utiliser la commande testparm qui lit le fichier smb.conf et permet de vérifier qu'il n'y a pas d'erreur de syntaxe.
Et on redémarre le serveur:
[root@DeepGlue steph]# samba restart |
Le partage [netlogon] va héberger
les scripts de connexion des utilisateurs se loguant sur le domaine MaMaison.
Ces scripts sont des programmes M$DO$/WINDOW$
(on va se limiter aux .BAT,
mais il doit être possible de passer des .EXE
en guise de script de login).
Il faut donc les créer sous WINDOW$ pour
des questions de fins de lignes qui ne sont pas gérées de
la même façon par WINDOW$ et UNIX (voir l'annexe Fins de lignes Unix).
Dans un premier temps, on va se loguer sur les clients sans rien
changer, créer les scripts dans \\LeJoliServeur\netlogon
Et ensuite nous demanderons au client window$
de se connecter sur le domaine MaMaison.
(Remarque: on pourrait faire le contraire:
Simplement, tant que le script de login n'existe pas, à part la
fenêtre de connexion, rien ne serait changé pour le
client).
Un premier script à taper depuis un client:
@echo ==========Script de connexion========== net use H: /home net use P: \\LeJoliServeur\public net time \\LeJoliServeur /set /yes |
Enregistrer ce script sous \\LeJoliServeur\scripttoto.bat
pour l'utilisateur toto, sous \\LeJoliServeur\scriptmartin.bat pour
l'utilisateur martin,...
Remarque:
Pour plus d'informations sur les commandes net
/help, net view \\nom_du_serveur,... voir en annexe.
Configurer ensuite le client window$: |
![]() |
Et cocher la case "Ouvrir la session sur un
domaine NT" et saisir le nom du domaine (MaMaison) dans l'emplacement prévu
à cet effet. |
|
Se loguer en tant qu'utilisateur martin... | ![]() |
<Remarque, cette partie sera à refaire (dans un proche avenir) pour des clients XP>
Lancer l'Explorateur Window$ et
contrôler la présence des lettres de lecteur des
partages [martin] (Home)
et [Public].
Faire des essais en changeant l'heure et vérifier que lors du
login suivant, le poste est bien remis à l'heure du serveur.
Créer de la même façon d'autres scripts d'utilisateurs.
Remarques:
Pour avoir le temps de voir ce qui
défile, ajouter "pause" à
la fin des scripts de login.
Il est vrai qu'il est possible
d'utiliser la connexion de lecteurs
indépendamment du contrôleur de domaine et cocher "Se reconnecter au démarrage", mais ces
partages ne sont pas adaptables selon les utilisateurs (les utilisateurs peuvent avoir plus ou moins de lecteurs réseaux et le partage [homes] ne pointe pas au même endroit pour
tous les utilisateurs... si on le fait via un clic-droit dans le Voisinage réseau...).
De plus, il suffit de décocher/annuler lors d'une
indisponibilité du serveur pour qu'il ne soit plus
reconnecté au démarrage.
On pourrait tout de même placer ce script dans le Menu démarrer/Démarrage, mais
là aussi il peut être supprimé/modifié.
L'inconvénient d'une
configuration du client comme client d'un domaine NT, c'est que l'utilisateur doit exister
sur le serveur Linux/Samba.
La seule façon de se connecter sans nom d'utilisateur est de
taper ECHAP.
On est alors connecté sans accès au réseau.
(le jour où le serveur tombe en rade, il
faut alors ensuite accéder aux propiétés du
client micro$oft et décocher "Ouvrir la
session sur un domaine NT" pour disposer d'un accès au
réseau (hors serveur en rade) et à internet).
Voir la page "Se
libérer si le Contrôleur de domaine tombe en rade"
pour des solutions à ce genre de situation.
Une fois les scripts de login, les
fichiers de registre,... créés, il est prudent
d'effectuer quelques modifications sur le partage [netlogon]:
(en effet, il fournit énormément
d'informations sur les comptes existants et si en plus il est
possible de modifier les .BAT,...)
[netlogon] comment = Network Logon Service path = /home/samba/netlogon guest ok = yes writable = no browseable = no |
Ressources:
Le fichier smb.conf (avec les fins de lignes UNIX): smb.conf.version8 (qu'il faudra renommer en smb.conf).
Et la version avec [netlogon]
"protégé": smb.conf.version9
(qu'il faudra renommer en smb.conf).
Des ressources extérieures:
Voici quelques documents (parmi tant d'autres)
pour en apprendre plus sur la mise en place d'un PDC:
Les documentations de Ewen Prigent
(http://linux-france.org/~eprigent/):
Samba_PDC_Web, Samba_PDC_Entreprise, Samba_PDC_2000.
Plus tout à fait dans le cadre d'un PDC,
mais très instructif également: Samba_user_pour_WEB
et Partage_imprimantes_Web.
Le site de Benoit Gerrienne: http://samba.linuxbe.org/fr/samba/index.html
Le site d'Eric Seigne: Rycks http://www.rycks.com/documentation/samba/index.html et les réponses à certaines questions http://www.rycks.com/documentation/samba/contribs.html
Un article en anglais,... mais très bien quand même;o):
http://www.linux-mag.com/cgi-bin/printer.pl?issue=2002-02&article=samba
.
La documentation officielle en anglais: Samba-HOWTO-Collection.pdf et sa version HTML.
Un chapitre sur Samba-PDC dans "Using Samba" de O'Reilly (en anglais aussi) à l'adresse http://www.oreilly.com/catalog/samba/chapter/book/ch06_05.html(sur le disque dur aussi file:/usr/share/doc/samba-doc-2.2.7a/docs/htmldocs/using_samba/ch06_05.html avec une adresse qui risque de changer d'une version de samba à une autre).
Une page de Mandrake-User: http://www.mandrakeuser.org/docs/connect/csamba6.html
Sommaire - | Précédent - | Suivant |