Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
20 mai 2016

FileSystems           Systèmes de fichier


autofs

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.