Par Mark Nielsen mark@tcu-inc.com
Si ce document change, il sera disponible ici: http://www.tcu-inc.com/mark/articles/Autofs2.html. Il existe également une version antérieure de ce tutoriel à l'adresse http://www.ssc.com/lg/issue24/nielsen.html qui a été publiée dans le numéro 24 de Janvier 1998.
Qu'est-ce qu'autofs ? Autofs vous facilite un peu l'utilisation de vos lecteurs de disquettes et de cdrom. Dans le monde MS Windoze, lorsque vous devez accéder à votre lecteur de disquettes, il vous suffit d'aller sur le lecteur a: et c'est tout. Pour permettre ce fonctionnement dans le monde Linux ou UNIX, vous devez utiliser un automonteur qui attache un périphérique (tel qu'un lecteur de disquettes ou de cdroms) à un répertoire de l'ordinateur.
Si vous n'avez pas d'automonteur, il vous faut attacher manuellement un
périphérique à un répertoire en utilisant les commandes mount
et
umount
. Par exemple, l'attachement de votre lecteur de disquettes au
répertoire /mnt/floppy
se fait ainsi:
mount /dev/fGd0 /mnt/floppy
Si vous devez explicitement indiquer quel type de formatage a subi la disquette, vous devez utiliser ces commandes:
mount -t msdos /dev/fd0 /mnt/floppy ## pour les disques au format msdos
mount -t ext2 /dev/fd0 /mnt/floppy ## pour les disques au format "linux"
Vous devez également vous assurer que le répertoire /mnt/floppy
existe. La commande pour créer le répertoire serait:
mkdir -p /mnt/floppy
Cette commande effectue le démontage (la libération de l'utilisation du lecteur de disquettes).
umount /dev/fd0
Par ailleurs, ce que chacun devrait savoir, c'est que KDE et GNOME, qui sont
des environnements de bureau pour X, ont généralement leur propre manière
d'utiliser les lecteurs de disquettes. Le problème qui se pose alors est que si
vous vous connectez à votre ordinateur par le biais de telnet
ou ssh
,
ces fonctionnalités ne vous sont pas disponibles. Ce n'est pas agréable. En
utilisant Autofs, tout programme ou utilisateur qui entrerait dans un
répertoire qui est assigné à un périphérique (un lecteur de disquettes par
exemple) provoque l'attachement du périphérique à ce répertoire. Cette
opération est effectuée au niveau système plutôt qu'au niveau de l'interface
graphique utilisateur.
De plus, Autofs peut être utilisé pour capturer un site nfs (ou d'autres choses du même style) et l'attacher à un répertoire. Il peut faire plus que le montage automatique de vos lecteurs de disquettes et de cdroms.
Si vous avez besoin de plus d'informations, essayez ces URL ou ces commandes sur votre ordinateur:
man automount
man autofs
man /usr/man/man5/auto.master.5
more /usr/doc/autofs-3.1.3/README
NOTE: vous devriez également prendre en compte les problèmes de sécurité qui peuvent se poser avec l'utilisation de autofs.
Comment installer Autofs ? Bien que je déteste expliquer les choses pour une version particulière de Linux (compte tenu du fait que je suis de plus en plus accro à la Debian), cette démo sera faite pour une RedHat 6.0.
Je considère que /dev/cdrom
est votre lecteur de cdrom et que
/dev/fd0
est votre lecteur de disquettes. Je considère également que
vous avez fait une copie de sauvegarde de votre fichier
/etc/auto.master
. Utilisez ce script pour créer les fichiers suivants
et redémarrez autofs.
Loguez vous en tant que root, allez dans votre répertoire utilisateur,
copiez tout ce qui se trouve entre les deux lignes suivantes dans un fichier
appelé CreateAutofs.script
et exécutez ce script avec la commande:
source CreateAutofs.script
----------------------------------------------------------------------
mkdir -p /root/Drives
cd /root/Drives
### On s'assure que les deux répertoires existent en ignorant les erreurs
mkdir -p /mnt/Drives/floppy
mkdir /mnt/Drives/cdrom
### On sauvegarde les fichiers auto au cas où
mv -f /etc/auto.master /etc/auto.master_old
mv -f /etc/auto.floppy /etc/auto.floppy_old
mv -f /etc/auto.cdrom /etc/auto.cdrom_old
### On crée les fichiers pour autofs
echo "/mnt/Drives/cdrom /etc/auto.cdrom --timeout 10" > /etc/auto.master
echo "/mnt/Drives/floppy /etc/auto.floppy --timeout 3" >> /etc/auto.master
echo "floppy -fstype=auto :/dev/fd0" > /etc/auto.floppy
echo "cdrom -fstype=iso9660,ro :/dev/cdrom" > /etc/auto.cdrom
### On crée les liens vers le lecteur de disquettes et de cdrom
ln -s /mnt/Drives/floppy/floppy a:
ln -s /mnt/Drives/floppy/floppy floppy
ln -s /mnt/Drives/cdrom/cdrom d:
ln -s /mnt/Drives/cdrom/cdrom cdrom
### On redémarre autofs
/etc/rc.d/init.d/autofs stop
/etc/rc.d/init.d/autofs start
### Si cela n'a pas marché, il vous faudra peut-être rebooter
cd /root/Drives
----------------------------------------------------------------------
Insérez maintenant une disquette formatée au format MSDOS et un cdrom dans leurs lecteurs respectifs et exécutez les commandes suivantes:
ls /root/Drives/a:
ls /root/Drives/d:
pour voir s'ils contiennent quelque chose. Normalement, vous ne devriez pas
avoir de messages d'erreur.
Chez moi, le fichier /etc/auto.floppy
ressemble à ça:
floppy -fstype=auto,defaults,user,suid :/dev/fd0
et mon fichier /etc/auto.cdrom
à ça:
cdrom -fstype=iso9660,user,suid :/dev/cdrom
J'ai pris des options restrictives dans le script pour des raisons de
sécurité. Mais compte tenu du fait que je suis la seule personne à utiliser mon
ordinateur, je voulais être sûr que mon compte personnel ait un accès aux
lecteurs de disquettes et de cédérom. Auparavant, -fstype=auto
ne marchait
pas très bien avec les disques msdos mais, depuis que j'ai augmenté le délai de
garde à 3 secondes, cela semble fonctionner correctement. J'ai pris un délai de
garde de 10 secondes pour le cdrom dans la mesure où cela ne marchait pas
vraiment correctement avec 1 seconde et où je me suis dit que le lecteur
n'avait probablement pas le temps de chauffer avant de
s'éteindre. Peut-être voudrez-vous tester la valeur optimale du délai de garde
pour votre lecteur de cdrom.
Le script /etc/rc.d/init.d/autofs
regarde d'abord dans
/etc/auto.master
. Ce fichier comporte généralement trois choses par
ligne :
Par ailleurs, les fichiers supplémentaires peuvent comporter plus d'une entrée mais, pour ma part, je ne tire pas parti de cette fonctionnalité. Veuillez lire ce qui suit pour en comprendre les raisons. Les fichiers auxiliaires peuvent prendre les noms que vous voulez. Ils contiennent aussi trois valeurs par entrée.
/dev/fd0
qui représente le lecteur de
disquettes) auquel le répertoire pseudo est connecté.Le répertoire pseudo est contenu dans le répertoire défini dans
/etc/auto.master
. Lorsque l'on essaie d'accéder à ce pseudo
répertoire, l'utilisateur est rerouté vers le périphérique que vous avez
spécifié. Par exemple, le script ci-dessus génère un lien appelé a: qui,
si vous le listez avec la commande ls a:
, vous donnera la liste des
fichiers présents sur le lecteur de disquettes. Une commande similaire serait
ls /mnt/Drives/floppy/floppy
. Mais si vous exécutez la commande ls
/mnt/Drives/floppy
, vous ne verrez rien même si le répertoire
/mnt/Drives/floppy/floppy
est sensé exister. La raison en est que
/mnt/Drives/floppy/floppy
n'existe pas en tant que fichier ou
répertoire: le système se débrouille pour savoir que si vous demandez à accéder
à /mnt/Drives/floppy/floppy
, il doit vous renvoyer vers le
lecteur de disquettes.
Parlons maintenant de la raison qui fait que je n'ai pas combiné les lecteurs
de disquettes et de cdrom dans le même fichier auxiliaire. Chaque définition
dans le fichier /etc/auto.master
dispose de son propre programme
automount
. Si plusieurs périphériques utilisent le même programme
automount et que l'un deux a une défaillance, il se pourrait qu'il entrave le
bon fonctionnement des autres. C'est pourquoi je donne à chaque périphérique
son propre programme automount ce qui implique qu'il n'y ait qu'un périphérique
par fichier auxiliaire mentionné dans le fichier /etc/auto.master
.
Il est également important de remarquer que j'utilise des liens pour les répertoires pseudo. Les experts de l'informatique risquent la confusion si ils essayent d'utiliser manuellement les répertoires pseudo. À la base, les répertoires pseudo sont des répertoires qui n'existent pas jusqu'au moment où vous essayez de les utiliser. J'aime bien utiliser des liens vers les répertoires pseudo de manière à ce que l'utilisateur voit et utilise ces liens. Les gens sont contents car les liens restent au contraire des répertoires pseudo qui vont et viennent à la demande.
Comment mettre cela en place pour les nouveaux utilisateurs?
D'abord, vous devez comprendre que les options de montage que vous mettez dans les fichiers de configuration de autofs déterminent comment un utilisateur pourra utiliser les lecteurs de disquettes ou de cdrom ainsi que tout autre type de périphérique. Par ailleurs, vous ne devez pas négliger les problèmes de sécurité qu'implique l'utilisation de autofs.
Faites ce qui suit:
mkdir -p /etc/skel/Drives
ln -s /mnt/Drives/floppy/floppy /etc/skel/Drives/floppy ## lien vers la disquette
ln -s /mnt/Drives/floppy/floppy /etc/skel/Drives/a:
ln -s /mnt/Drives/cdrom/cdrom /etc/skel/Drives/cdrom ## lien vers le cdrom
ln -s /mnt/Drives/cdrom/cdrom /etc/skel/Drives/d:
Comment l'installer pour un utilisateur que nous appellerons frank et dont
le répertoire personnel est /home/frank
mkdir -p /home/frank/Drives ## créer un répertoire pour frank
chown frank /home/frank/Drives ## Lui en donner la propriété
ln -s /mnt/Drives/floppy/floppy /home/frank/Drives/a: ## lien vers la disquette
ln -s /mnt/Drives/floppy/floppy /home/frank/Drives/floppy
ln -s /mnt/Drives/cdrom/cdrom /home/frank/Drives/d: ## lien vers le cdrom
ln -s /mnt/Drives/cdrom/cdrom /home/frank/Drives/cdrom
chown frank /home/frank/Drives/* ### Donner à frank la propriété du contenu du répertoire
Une commande vraiment risquée pour installer chez un utilisateur après avoir installé chez des utilisateurs novices serait de faire:
### NE FAITES PAS CELA À MOINS D'AIMER LE RISQUE
mkdir -p /home/frank/Drives
if [ -d /etc/skel/Drives ]; then
tar -C /etc/skel -c Drives | tar -C /home/frank -xv Drives
chown -R frank /home/frank/Drives
else
echo "Pense d'abord à créer le répertoire /etc/skel/Drives, mon gars."
fi
Passons maintenant à des choses un peu plus amusantes. Je vais faire appel à un fichier de configuration de plus pour gérer à la fois un lecteur zip et un site nfs. Tout d'abord, je considère que le lecteur zip est en esclave sur le contrôleur IDE primaire de votre ordinateur. En fait, j'ai essayé de me connecter à ce site via nfs et ça n'a pas marché. J'ai essayé de le faire entre mes ordinateurs chez moi et tout a bien fonctionné.
echo "/mnt/Drives/zip /etc/auto.zip --timeout 10 --timeout 5" >> /etc/auto.master
echo "kernel -ro,soft,intr ftp.kernel.org:/pub/linux" > /etc/auto.zip
echo "zip1 -fstype=auto,rw :/dev/hdb1 " >> /etc/auto.zip
echo "zip2 -fstype=auto,rw :/dev/hdb2 " >> /etc/auto.zip
echo "zip3 -fstype=auto,rw :/dev/hdb3 " >> /etc/auto.zip
echo "zip4 -fstype=auto,rw :/dev/hdb4 " >> /etc/auto.zip
ln -s /mnt/Drives/zip/kernel /etc/skel/Drives/kernel
ln -s /mnt/Drives/zip/zip4 /etc/skel/Drives/zip ## lien vers le cdrom
Copyright © 1999, Mark Nielsen - Adaptation française de Pierre Tane