# autofs
Format des maps d'automontage
Les maps d'auto-montage sont FILE, NIS, NISPLUS ou LDAP référencés
par la map maître auto.master. Ces maps décrivent comment les systèmes
de fichiers sous le point de montage de la map sont montés. Cette
documentation décris le format sun; si un autre format, autre que amd,
est spécifié, cette documentation ne s'applique pas.
## Format SUN
**key \[-options\] location**
**key** Pour les montages indirectes c'est la partie du nom de chemin
entre le point de montage et le chemin dans le systèmes de fichier quand
il est monté. Généralement on peut penser que la clé est un
sous-répertoire sour le point de montage. Pour les montages direct,
c'est le chemin complet de chaque point de montage. Cette map est
toujours associée avec le point de montage /- dans la map maître.
**options** 0 ou plusieurs options peuvent être données. Les options
peuvent également être données dans le fichier auto.master auquel cas
les valeurs sont cumulées. Les options sont une liste d'options séparée
par une ','.
**-fstype=** utilisé pour spécifier un type de système de
fichier si le système de fichier n'est pas le type NFS. Cette option est
traitée par l'auto-monteur, et non par la commande mount.
**-strict** Utilisé pour traiter les erreurs en montant les
systèmes de fichier comme fatal, c'est important quand plusieurs
systèmes de fichiers devraient être montés. Si l'option est données,
aucun système de fichier n'est monté si au moins un système de fichier
ne peut être monté.
**-use-weight-only** Utilisé pour faire le poid du seul facteur
dans le choix du serveur lorsque plusieurs serveurs sont présents dans
une entrée de map.
**-no-use-weight-only** Peut être utilisée pour inverser
l'option si présent dans l'entrée de map maître.
L'emplacement spécifie d'où le système de fichier est monté. Dans la
plupart des cas ce sera un volume NFS et la notation courante est
host:pathname. Si le système à monté commence avec un / (comme les
entreés /dev ou les partages smbfs), un : doivent être préfixé
(exemple: :/dev/sda1).
## Exemples
Maps
indirectes:
kernel -ro,soft,intr ftp.kernel.org:/pub/linux
boot -fstype=ext2 :/dev/hda1
windoze -fstype=smbfs ://windoze/c
removable -fstype=ext2 :/dev/hdd
cd -fstype=iso9660,ro :/dev/hdc
floppy -fstype=auto :/dev/fd0
server -rw,hard,intr / -ro myserver.me.org:/ /usr myserver.me.org:/usr
/home myserver.me.org:/home
Sur la première ligne, on a un montage NFS du répertoire
ftp.kernel.org. C'est monté en lecture seule. La seconde ligne monte un
volume ext2 depuis un volume local. La 3ème ligne créé un partage
exporté depuis une machine Window$ disponible pour l'auto-montage. Le
reste devrait être compréhensible. Le dernière entrée est un example
d'un multi-map.
Dans un automontage sur un système de fichier sans permissions d'accès
(ex: vfat), les utilisateurs ne peuvent pas écrire sur ce système de
fichier parce qu'il est monté en root. On peut résoudre cela en passant
l'option gid=‹gid›:
**floppy-vfat -fstype=vfat,sync,gid=floppy,umask=002 :/dev/fd0**
Maps
directs:
/nfs/apps/mozilla bogus:/usr/local/moxill
/nfs/data/budgets tiger:/usr/local/budgets
/tst/sbin bogus:/usr/sbin
## Fonctionnalités
**Substitution de clé** Un caractère '&' dans l'emplacement est étendu à
la valeur du champ clé qui matche la ligne
**Clé wildcart** '\*' dénote une entrée wildcard. Cette entrée est
consultée si la clé spécifiée n'existe pas dans la map. Une telle entrée
ressemble à: \* server:/export/home/&
**Substitution de variable** Les variables spéciales suivantes seront
substituées dans le champs emplacement d'une entrée de map si préfixé
avec un $.:
**ARCH** uname -m
**CPU** Type de processeur
**HOST** uname -n
**OSNAME** uname -s
**OSREL** uname -r
**OSVERS** uname -v
**USER** Login de l'utilisateur
**UID** UID de l'utilisateur
**GROUP** Nom du groupe
**GID** GID du groupe
**HOME** Répertoire home de l'utilisateur
**SHOST** Hostname non fqdn
Si un program map est utilisé avec ces variables d'environnement,
elles seront préfixées avec "AUTOFS\_" pour empêcher certains programmes
comme python de charger et d'exécuter du code arbitraire depuis un
répertoire utilisateur.
**Maps exécutables** Une map peut être marquée exécutable. Un program
map est appelé avec la clé en argument. Il ne retourne rien en cas
d'erreur, ou un code d'erreur, ou une ou plusieurs lignes d'une entrée
de map.
**Montages multiple** Une map multi-mount peut être utilisée pour nommer
plusieurs systèmes de fichiers à monter, sous la forme: **key \[
-options \] \[\[/\] location \[/relative-mount-point \[ -options \]
location...\]...**.
**Serveurs répliqués** Un emplacement de montage peut spécifier
plusieurs hôtes, potentiellement avec un chemin d'export différent pour
le même système de fichier. Historiquement, cet emplacements sont
lecture seul et fournissent le même système de fichier répliqué:
Plusieurs hôtes, même chemin:
**‹path› host1,host2,hostn:/path/path**
Plusieurs hôtes, certains avec le même chemin, d'autres noms:
**‹path› host1,host2:/blah host3:/some/other/path**
Plusieurs hôtes répliqués, différents chemins:
**‹path› host1:/path/pathA host2:/path/pathB**
Avec un poid, même chemin:
**‹path› host1(5),host2(6),host3(1):/path/path**
Avec un poid, chemins différents:
**‹path› host1(3):/path/pathA host2(5):/path/pathB**
Une variation qui fonctionne également:
**‹path› host1(3),host:/blah**
## Format AMD
**key location-list**
**key** Chemin. peut être '\*'.
**location-list** emplacement des points de montages (syntaxe:
location\[ location\[ ... \]\] \[|| location\[ location\[ ... \]\]). ||
permet de spécifier d'autres emplacements à tester si l'emplacement
n'est pas disponible.
un emplacement de montage consiste d'une liste optionnellement
séparée par ':', suivi par une liste séparée par ':' de paires
option:=valeur. Le sélecteur qui peut être utilisé retourne une valeur
ou un booléen. Ceux qui retournent une valeur peuvent être utilisé avec
les opérateurs de comparaison == et \!= et ceux qui retoure un résultat
booléen peuvent être inversés avec \!.
Pour un emplacement soit sélectionné, tous ses sélecteurs doivent
s'évaluer à true. De plus, certains sélecteurs ne prennent pas
d'argument et d'autre, optionnelement 2 arguments. Les sélecteurs sans
arguments sont:
**arch** Architecture de la machine
**karch** Architecture du kernel
**os** Nom de l'os
**osver** Version de l'os
**full\_os** nom comple de l'os
**vendor** Nom du vendeur de l'os
**byte** Endianness du matériel
**cluster** Nom du cluster local (a une valeur qui ne peut être
définis que dans la configuration)
**autodir** Chemin de base où sont effectués les montages
externes si nécessaire.
**domain** Nom de domaine local
**host** Nom de l'hôte
**hostd** Nom complet de l'hôte
**UID** UID de l'utilisateur
**gid** GID de l'utilisateur
**key** Valeur de la clé à rechercher
**map** Valeur du nom de la map pour rechercher key
**path** Chemin complet du montage
**dollar** le caractère '$'
Les sélecteurs qui prennent un argument sont:
**in\_network(network), network(network), netnumber(network),
wire(network)** Ces sélecteurs sont similaires. L'argument est une
adresse ou un nom de réseau. La fonction compare cet argument avec
chaque interface et retourne true si le réseau appartient au réseau.
**xhost(hostname)** Compare hostname à ${host} et s'il match,
tente de rechercher le nom canonique de hostname et le compare à
{host}.
**exists(filename)** vrai si filename existe
**true()** Évalue à vrai
**false()** Évalue à faux
Les sélecteurs qui prennent jusqu'à 2 arguments:
**netgrp(netgroup\[,hostname\])** Retourne vrai si hostname est
un membre du netgroup spécifié. Si hostname n'est pas spécifié, ${host}
est utilisé
**netgrpd(netgroup\[,hostname\])** Identique, mais le hostname
fqdn est utilisé au lieu de ${host}
Les options qui peuvent être utilisées sont:
**type** Type de système de fichier à monter (auto, link, linkx,
host, lofs, ext2-4, xfs, nfs, nfsl, cdfs).
**maptype** Spécifie le type de source de map (file, nis,
nisplus, exec, ldap, hesiod).
**fs** Spécifie le système de fichier local. Dépendant du
type.
**rhost** L'hôte distant pour les requêtes réseau
**rfs** Chemin du système de fichier de l'hôte distant
**dev** Doit résoudre le système de fichier local
**sublink** spécifie un sous-répertoire dans l'emplacement de
montage pour laquelle cette entrée va pointer
**pref** Spécifie un préfixe à ajouter à la clé de recherche
avant de rechercher l'entrée de map
**opts** Spécifie les options de montage à utiliser par mount.
'-' pour ignorer.
**addopts** Options de montage additionnels
**remopts** Spécifie les options de montage au lieu de opts
quand l'emplacement de montage est sur le réseau
## Fonctionnalités
**key Matching** La clé à rechercher est construit en ajoutant le
préfixe s'il y a un. Le chemin relatif résultant est matché en essayant
d'abord la chaîne elle-même. S'il n'y a pas de match, le dernier
composant le la clé est remplacée avec le caractère '\*'. Le processus
continue jusqu'à ce qu'un match soit trouvé.
**Macro Usage** De nombreuses valeurs d'options sont définies comme
variables correspondant au nom de l'option durant la recherche d'entrée
de map. Elles peuvent être utilisé dans d'autres valeurs d'option
(attention à l'ordre de ces options)
## Exemples
Supposont une entrée de map maître:
**/test file,amd:/etc/amd.test**
Et la map suivante /etc/amd.test:
**/defaults type:=nfs;rhost:=bilbo**
**apps rfs:=/autofs**
**util rhost:=zeus;rfs:=/work/util**
**local rfs:=/shared;sublink:=local**
Dans la première ligne on a un montage distant NFS du répertoire
exporté /autofs depuis l'hôte bilbo qui sera monté dans /test/apps. Un
autre montage pour le répertoire exporté /work/util depuis l'hôte zeus.
Il sera monté dans /test/utils.
Finallement on a un exemple de l'utilisation de l'option sublink, où
filbo:/shared sera monté dans un chemin externe au répertoire
d'automontage (sous le répertoire donné par l'option auto\_dir) et le
chemin /test/local.