Samba et W$nt/2k/xp
Je n'ai que peu d'expérience des Window$ professionnels.
Je n'y ai été confronté (de force)
qu'avec la livraison de machines sous XP.
Après avoir galéré et pas mal fouiné, j'ai préparé ce petit
compte-rendu des solutions trouvées.
Pour l'essentiel, les démarches doivent être les mêmes sous W$nt et 2k.
L'environnement W$nt/2k/xp apporte des fonctionnalités et impose des contraintes qu'il fait prendre en compte dans le cadre de Samba.
Dans le cas d'un serveur Samba non contrôleur de domaine, il n'y a
pas ou peu de changement:
Lors de l'accès à un partage, l'utilisateur se voit proposer de fournir
à la fois un login et un mot de passe (alors
que sous w$9x/me seul la saisie du mot de passe est proposée).
<<FAIRE UNE CAPTURE>>
Cela permet d'accéder à des partages sous une autre identité que la
sienne propre.
Dans le cas d'un serveur Samba Contrôleur de Domaine, les clients
doivent intégrer le domaine.
Cela signifie entre autres qu'il doit exister un compte pour la machine
en plus du compte utilisateur.
Pour XP, d'autres contraintes encore sont à prendre en compte.
Nous allons voir comment procéder.
Enfin, certaines actions nécessitent des droits administrateur sur
la machine cliente et nous allons préciser une "astuce".
Intégrer le domaine Samba:
Côté serveur:
Imaginons que le serveur Linux/Samba se nomme Augustin et que le domaine/groupe de travail défini à la ligne "workgroup = fresnel_samba" du fichier /etc/samba/smb.conf se nomme fresnel_samba
Nous disposons par ailleurs d'un client nommé nec08 sous W$xp.
Pour intégrer le domaine fresnel_samba,
il faut disposer des droits administrateurs sur Samba.
C'est-à-dire qu'en principe seul l'administrateur du domaine peut faire
intégrer le domaine aux machines de son parc informatique.
Un compte administrateur doit exister pour le serveur Samba.
Il faut pour cela créer un compte d'administrateur samba (avec un mot de passe différent de celui
d'accès à Linux, par précaution):
[steph@Augustin steph]$ su
Password:
[root@Augustin steph]# smbpasswd -a root
New SMB password:
Retype new SMB password:
Password changed for user root.
[root@Augustin steph]#
Nous avons ici fait de l'utilisateur root de Linux un utilisateur de Samba.
Pour ne pas intégrer à la main sur le serveur toutes les machines du réseau local, on peut placer la ligne suivante dans le fichier /etc/samba/smb.conf:
add user script = /usr/sbin/useradd -d /dev/null -g machines -c 'Machine Account' -s /bin/false -M %m$
Redémarrez votre serveur samba après modification:
[root@Augustin steph]# samba restart
...
[root@Augustin steph]#
Remarques:
- Il faut veiller à ce qu'un groupe "machines" existe.
Au besoin le créer en tant que root:
[root@Augustin steph]# groupadd machines
[root@Augustin steph]#
- Si vous souhaitez intégrer les machines à la main depuis le
serveur, il faut créer un compte pour la machine pour Linux et pour
Samba (cela ne dispense pas ensuite
les clients de joindre le domaine):
[root@Augustin root]# useradd -g machines -c "Compte Machine" -d /dev/null -s /bin/false nec08$
[root@Augustin root]# smbpasswd -a -m nec08
Added user nec08$.
[root@Augustin root]#Pour le useradd, on ajoute bien un "$" à la fin du nom alors qu'on ne ne met pas pour le smbpasswd.
Vous pouvez ensuite contrôler dans les fichiers /etc/passwd, /etc/shadow et /etc/samba si vous souhaitez contrôler la présence de votre nouveau compte machine.
Côté client:
Le cas XP:
Côté client, dans le cas d'une machine w$xp (testé sur xp pro, car il me semble que des
changements sont intervenus pour contrevenir à une astuce qui permettait
contre les souhaits de Micro$oft à un xp home de joindre un domaine),
il est nécessaire d'effectuer quelques modifications au niveau de la
base de registre.
Cela consiste à exécuter le fichier de registre suivant:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Netlogon\Parameters]
"requiresignorseal"=dword:00000000
"requirestrongkey"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Netlogon\Parameters]
"requiresignorseal"=dword:00000000
"requirestrongkey"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
"requiresignorseal"=dword:00000000
"requirestrongkey"=dword:00000000
Voici le fichier sambaXP.reg (rappel: ce point ne concerne que xp).
Vous pouvez en trouver un exemplaire à l'adresse http://us1.samba.org/samba/ftp/docs/Registry/WinXP_SignOrSeal.reg
Remarques:
- Il est nécessaire d'être administrateur de la machine xp pour
pouvoir exécuter ce fichier de registre.
- Si vous souhaitez intégrer le domaine samba nommé fresnel_samba, il faut préalablement
que le groupe de travail soit différent de fresnel_samba.
Il n'est en effet pas possible de passer du groupe de travail fresnel_samba au domaine fresnel_samba.
Si c'est votre situation, commencez par passer du groupe fresnel_samba à un groupe quelqconque (toto par exemple).
Après un redémarrage, vous pourrez passer au domaine fresnel_samba.
L'intégration du domaine:
D'un clic-droit sur l'icone du Poste de travail, sélectionnez
Propriétés système<<A VERIFIER>>.
Vous obtenez alors:
Dans l'onglet Nom de l'ordinateur, cliquez sur Modifier.
Vous obtenez alors:
Le nom du groupe de travail est différent du nom du domaine que nous
souhaitons intégrer.
Il suffit donc de cocher Domaine et d'en préciser le nom:
Puis, en validant, on se voit invité à fournir le couple login/password de l'administrateur Samba:
Après validation, il faut un peu de temps avant d'obtenir une réponse, mais on finit par obtenir un message de bienvenue:
Si tel n'est pas le cas, avez vous bien respecté tous les points
précédents?
Pour la suite, lors de la validation il vous est rappelé que vous devrez redémarrer pour que l'intégration du domaine soit prise en compte:
Un point d'exclamation sur fond jaune le rappelle encore dans
l'onglet Nom de l'ordinateur:
Et lorsque vous quittez effectivement les Propriétés système, un dernier rappel est affiché:
Après redémarrage, si vous souhaitez vous connecter avec un compte
défini sur le domaine, veillez à sélectionner dans le troisième champ de
la fenêtre de login: fresnel_samba
Si ce troisième champ n'est pas apparent, développez la fenêtre pour
pouvoir effectuer ce choix <<A
"CAPTURER">>.
Les Profiles, le partage Home,...
Profiles
Pour w$nt/2k/xp, il faut ajouter quelques lignes dans le fichier /etc/samba/smb.conf
Ces OS ont besoin d'un partage sur lequel stocker les profiles
d'utilisateurs.
Il faut donc décommenter le partage: <<A VERIFIER/REFAIRE>>
[Profiles]
path = /home/samba/profiles
browseable = no
guest ok = yes
writable = yes
Il y a de plus une option dans la section globale pour préciser le chemin vers les "profiles" A REVOIR
Home
Le partage Home est automatiquement "monté" dans un lecteur Z:
<<Ne faut-il pas un logon
home,...? A REFAIRE>>
Si vous avez à la fois des machines nt/2k/xp et 9x/me, on pourra utiliser un script comme le suivant pour n'effectuer la création d'un lecteur réseau pour le home que lorsqu'il est nécessaire:
if "%OS%"=="Windows_NT" goto fin
rem Pour les Wnt/W2k/Wxp, le home est automatiquement en Z:
net use h: /home
rem Pour les Wnt/W2k/Wxp, la mise à jour nécessite
rem des droits administrateurs, donc on procède autrement.
rem Ici, c'est pour les W9x/Wme uniquement:
net use m: \\Augustin\majnorton
If exist \\Augustin\pc$\majok.txt goto dejamaj
:maj
m:
majnorton /q
cd \
echo "majOK" >>\\Augustin\pc$\majok.txt
goto fin
:dejamaj
@echo La mise à jour a déjà été faite.
:fin
rem Un partage pour tous:
net use p: \\Augustin\public
c:
cd \windows
Voici un exemplaire de ce script: scriptlogin.bat
Remarque:
Quelques précautions pour faire de notre Samba le patron sur le réseau:
local master = yes
preferred master = yes
os level = 255
Et ce qui concerne le Contrôleur de Domaine:
domain master = yes
domain logons = yes
logon script = script%G.bat
Astuce:
C'est un peu hors sujet ici en ce qui concerne samba, mais il
s'agissait de trouver une solution à la mise à jour automatique des
signatures de virus Norton.
J'ai indiqué une solution dans le cadre w$9x/me (voir ici).
En voici une autre adaptée à w$xp (et
probablement nt/2k).
Le script de mise à jour, à partir d'un symcdefsi32.exe ou symcdefsx86.exe téléchargé et renommé en majnorton.exe, consiste à exécuter "majnorton /q" pour ne pas afficher de demande de confirmation.
Pour cela, considérons le fichier script_majnorton.cmd contenant
seulement \\Augustin\majnorton\majnorton /q
et procédons comme suit:
- Copier le fichier script_majnorton.cmd dans le dossier (à créer au besoin) :
C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Startup
Le dossier GroupPolicy est caché par défaut.
- Lancer gpedit.msc via Menu démarrer/Exécuter.
- Aller dans Configuration Ordinateur > Paramètres Windows >
Scripts > Démarrage
Cliquer sur Ajouter > Parcourir
La fenêtre s'ouvre sur startup et le fichier script_majnorton.cmd doit apparaître.
Le sélectionner.
Enfin valider et relancer Window$.
Après redémarrage le script est exécuté.
Voici un exemplaire de ce script: script_majnorton.cmd
Remarques:
-
Cela signifie qu'à chaque démarrage la mise à jour est effectuée d'après le téléchargement effectué sur le serveur.
Si on procède par déconnexion/reconnexion, ce n'est pas un gros problème, mais si on redémarre souvent, cela freine quand même la machine avant que l'on se voie proposer la fenêtre de login.
Il est possible d'adapter le script de la même façon que je l'ai fait pour des machines w$9x/me (voir ici pour les détails côté serveur):rem \\Augustin\majnorton\majnorton /q
net use m: \\Augustin\majnorton
If exist \\Augustin\pc$\majok.txt goto dejamaj
:maj
m:
majnorton /q
cd \
echo "majOK" >>\\Augustin\pc$\majok.txt
goto fin
:dejamaj
c:
cd \winnt
<<A TESTER/VERIFIER>>
Voici un exemplaire de ce script: script_majnorton.cmd
- Je dois l'astuce concernant gpedit.msc à Patrice Tréton.
Je n'ai fait que bricoler les scripts.
- Cette astuce doit permettre d'exécuter d'autres scripts/actions
avec les droits administrateur avant même le login.
Liens:
Le site de ... <<RECHERCHER>>
Des clés de registres utiles: http://perso.wanadoo.fr/doc.jm/StratDem.htm