L'exemple proposé fait référence aux signatures de virus Norton (logiciel antivirus pour lequel le Rectorat de Rouen paye de nombreuses licences chaquue année), mais la démarche doit pouvoir s'adapter à un autre antivirus.
Il s'agit de faire exécuter la mise à jour en insérant quelques lignes dans le script de login des utilisateurs.
Vous pouvez probablement apporter
d'autres raffinements.
- Créer en tant que super-utilisateur (root) des dossiers /home/samba/telech_norton
et /home/samba/majnorton:
mkdir /home/samba/telech_norton mkdir /home/samba/majnorton |
chown apache /home/samba/telech_norton chown apache /home/samba/majnorton |
chmod 755 /home/samba/telech_norton chmod 755 /home/samba/majnorton |
mkdir /home/samba/machines mkdir /home/samba/machines/pc10 mkdir /home/samba/machines/pc11 mkdir /home/samba/machines/pc12 ... |
(il est possible d'utiliser un script pour
automatiser cette création.
Voici un petit script maison à cet effet: script_creation_dossiers.sh;
En voici un autre pour des noms de machines n'ayant pas un préfixe commun: script_creation_dossiers.sh).
Il faut de plus que tout utilisateur puisse y écrire:
chmod 777 /home/samba/machines/* -R |
- Ajouter/modifier dans la section [global]
de votre /etc/smb.conf (ou/etc/samba/smb.conf sur certaines versions de Samba):
security = user local master = yes preferred master = Yes domain master = yes domain logons = yes logon script = script.bat |
[pc$] comment = Dossier Machines path = /home/samba/machines/%m public = yes guest ok = yes writable = yes browseable = yes printable = no [netlogon] comment = Network Logon Service path = /home/samba/netlogon writable = no share modes = no public = no browseable = no printable = no write list = root [telech] comment = Dossier temporaire de téléchargement des signatures de virus pour Norton Antivirus path = /home/samba/telech_norton public = yes guest ok = yes writable = no browseable = yes printable = no [majnorton] comment = Dossier des signatures de virus pour Norton Antivirus path = /home/samba/majnorton public = yes guest ok = yes writable = no browseable = yes printable = no |
Précision: Le partage pc$ est destiné à stocker un
fichier témoin de ce que la mise à jour a ou non
été effectuée dans la journée pour telle
machine.
Par ailleurs, une fois la phase de tests passés, vous pouvez
déclarer browseable=no pour le
partage [telech].
|
#!/bin/sh #Déclaration des variables: desttelech=/home/samba/telech_norton destmajnorton=/home/samba/majnorton chemindossiermachines=/home/samba/machines nomfich=symcdefsi32.exe #Téléchargement: wget --passive-ftp ftp://ftp.symantec.com:21/public/english_us_canada/antivirus_definitions/norton_antivirus/static/$nomfich -o $desttelech/telechexe.log -P $desttelech -v -l 1 #Test du fichier de log pour déterminer si le téléchargement a réussi: if cat $desttelech/telechexe.log | grep 100% >> /dev/null; then #Suppression de la version précédente des signatures: rm -f $destmajnorton/majnort.exe #On déplace et on renomme le fichier téléchargé: mv $desttelech/$nomfich $destmajnorton/majnort.exe #On supprime les témoins de ce que la mise à jour (précédente) a été effectuée: for I in $(ls $chemindossiermachines) do rm -f $chemindossiermachines/$I/majok.txt done else #On supprime l'archive incomplètement téléchargée: rm -f $desttelech/$nomfich rm -f $desttelech/telechexe.log fi |
- Changer le propriétaire et les droits de ces deux scripts:
chown apache
/home/samba/telech_norton/recupnorton_lundi.sh chmod 744 /home/samba/telech_norton/recupnorton_lundi.sh chown apache /home/samba/telech_norton/recupnorton_semaine.sh chmod 744 /home/samba/telech_norton/recupnorton_semaine.sh |
- Créer une Tâche planifiée
à l'aide de l'utilitaire cron:
Le mode édition repose sur
l'éditeur vi (assez
spartiate):
On ajoute une tâche au format minute heure
jour mois jourdelasemaine commande_a_executer:
jourdelasemaine est un chiffre:
0 pour dimanche,1 pour lundi, 2 pour mardi, 3 pour mercredi, 4 pour jeudi, 5 pour vendredi et 6 pour samedi.
Dans l'éditeur vi taper i pour passer en mode Insertion
et taper:
0 8 * * 1
/home/samba/telech_norton/recupnorton_lundi.sh 0 8 * * 2-5 /home/samba/telech_norton/recupnorton_semaine.sh |
net use n: \\pc16\majnorton If exist \\pc16\pc$\majok.txt goto dejamaj :maj n: cd \majnorton majnorton /q cd \ echo "majOK" >>\\pc16\pc$\majok.txt goto fin :dejamaj @echo La mise à jour a déjà été faite. :fin c: cd \windows |
Remarque: Le serveur se nomme ici pc16.
L'intérêt de cette méthode par rapport à la précédente est qu'elle ne repose pas pour les clients sur des Tâches planifiées. REGEDIT4 [HKEY_LOCAL_MACHINE\Network\Logon] # empeche dappuyer sur echap au login: "MustBeValidated"=dword:00000001 # Oblige l'utilisateur à se connecter avec un mot de passe valide: "LMLogon"=dword:00000001 # ne pas montrer le login du dernier utilisateur: "DontShowLastUser"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network] # empeche le cache des mots de pass (important pour la securite): "DisablePwdCaching"=dword:00000001 # interdit les mots de passe de moins de 5 caractères: "MinPwdLen"=dword:00000005 |
Inconvénients:
- Il faut paramétrer chaque poste client:
Propriétés du Voisinage
Réseau, Propriétés
de "Client pour les réseaux Micro$oft",
cocher la case "Se connecter sur un domaine NT"
et donner comme nom de domaine NT, le nom du groupe de travail, nom aussi déclaré
dans /etc/smb.conf à la ligne:
workgroup = cdi
Ici le groupe de travail est nommé "cdi".
- Vos utilisateurs doivent être déclarés pour Linux et pour Samba.
- Si votre serveur vient à défaillir (extrêmement rare), il vous faut disposer
d'une disquette de déblocage des postes clients, pour qu'ils
puissent se connecter (sans
bénéficier du serveur Samba, le
temps que vous déterminiez la source du problème).
Franck MOLLE, Animateur sur le Secteur de Louvier/Vernon a
réalisé une disquette de boot DOS qui permet de
régler les problèmes de connexion au réseau:
En voici une image: disk_rescue_f_molle.bin
Pour créer une disquette d'après cette image, utilisez
l'utilitaire DOS rawrite,
ou rawritewin sous Window$,
ou encore dd if=/chemin/disk_rescue_f_molle.bin
of=/dev/fd0 sous Linux.
Remarque:
(1) Je ne détaille pas ici la mise en place d'un serveur Samba PDC.
(2) Une solution analogue doit pouvoir est adaptée via Vigile qui autorise l'utilisation de scripts au démarrage.