autofs - Format of the automounter maps
Contents
Amd Format
This is a description of the text file format. Other methods of specifying mount map entries may be
required for different map sources. All empty lines or lines beginning with # are ignored. The basic
format of one line in such maps is:
keylocation-listkey
A key is a path (or a single path component alone) that may end in the wildcard key, "*", or the
wildcard key alone and must not begin with the "/" character.
location-list
Following the key is a mount location-list.
A location-list list has the following syntax:
location[location[...]][||location[location[...]]
A mount location-list can use the cut operator, ||, to specify locations that should be tried if none of
the locations to the left of it where selected for a mount attempt.
A mount location consists of an optional colon separated list of selectors, followed by a colon separated
list of option:=value pairs.
The selectors that may be used return a value or boolean result. Those that return a value may be to
used with the comparison operators == and != and those that return a boolean result may be negated with
the !.
For a location to be selected for a mount attempt all of its selectors must evaluate to true. If a
location is selected for a mount attempt and succeeds the lookup is completed and returns success. If the
mount attempt fails the procedure continues with the next location until they have all been tried.
In addition, some selectors take no arguments, some one argument and others optionally take two
arguments.
The selectors that take no arguments are:
arch
The machine architecture which, if not set in the configuration, is obtained using
uname(2).
karch
The machine kernel architecture which, if not set in the configuration, is obtained using
uname(2).
os
The operating system name, if not set in the configuration, is obtained using uname(2).
osver
The operating system version, if not set in the configuration, is obtained using uname(2).
full_os
The full operating system name, if not set in the configuration this selector has no value.
vendor
The operating system vendor name, if not set in the configuration this selector has the
value "unknown".
byte
The endianness of the hardware.
cluster
The name of the local cluster. It has a value only if it is set in the configuration.
autodir
The base path under which external mounts are done if they are needed. Most mounts are
done in place but some can't be and this is the base path under which those mounts will be
done.
domain
The local domain name. It is set to the value of the configuration option sub_domain. If
sub_domain is not given in the configuration it is set to the domain part of the local host
name, as given by gethostname(2).
host
The local host name, without the domain part, as given by gethostname(2).
hostd
The full host name. If sub_domain is given in the configuration this is set to the
contatenation of host and sub_domain deperated by a .. If sub_domain is not set in the
configuration the value of domain is used instead of sub_domain.
uid
The numeric value of the uid of the user that first requested the mount. Note this is usual
the same as that used by amd but can be different within autofs.
gid
The numeric value of the gid of the user that first requested the mount. Note this is usual
the same as that used by amd but can be different within autofs.
key
The string value of the key being looked up.
map
The string value of the map name used to lookup keys.
path
The string value of the full path to the mount being requested.
dollar
Evaluates to the string "$".
The selectors that take one argument are:
in_network(network),network(network),netnumber(network),wire(network)
These selectors are all the same. in_network() is the preferred usage. The network argument
is an address (which may include a subnet mask) or network name. The function compares
network against each interface and returns true if network belongs to the network the
interface is connected to.
xhost(hostname)
The xhost() selector compares hostname to the ${host} and if it doesn't match it attempts
to lookup the cannonical name of hostname and compares it to ${host} as well.
exists(filename)
Returns true if filename exits as determined by lstat(2).
true()
Evaluates to true, the argument is ignored and may be empty.
false()
Evaluates to false, the argument is ignored and may be empty.
The selectors that take up to two arguments are:
netgrp(netgroup[,hostname])
The netgrp() selector returns true if hostname is a member of the netgroup netgroup. If
hostname is not given ${host} is used for the comparison.
netgrpd(netgroup[,hostname])
The netgrpd()i selector behaves the same as netgrp() except that if hostname is not given
${hostd}, the fully qualified hostname, is used instead of ${host}.
The options that may be used are:
type
This is the mount filesystem type. It can have a value of auto, link, linkx, host, lofs,
ext2-4, xfs, nfs, nfsl or cdfs. Other types that are not yet implemented or are not
available in autofs are nfsx, lustre, jfs, program, cachefs and direct.
maptype
The maptype option specifies the type of the map source and can have a value of file, nis,
nisplus, exec, ldap or hesiod. Map sources either not yet implemented or not available in
autofs are sss, ndbm, passwd and union.
fs
The option fs is used to specify the local filesystem. The meaning of this option (and
whether or not it is used) is dependent on the mount filesystem type.
rhost
The remote host name for network mount requests.
rfs
The remote host filesystem path for network mount requests.
dev
Must resolve to the device file for local device mount requests.
sublink
The sublink option is used to specify a subdirectory within the mount location to which
this entry will point.
pref
The pref option is used to specify a prefix that is prepended to the lookup key before
looking up the map entry key.
opts
The opts option is used to specify mount options to be used for the mount. If a "-" is
given it is ignored. Options that may be used are dependent on the mount filesystem.
addopts
The addopts option is used to specify additional mount options used in addition to the
default mount options for the mount location.
remopts
The addopts option is used to specify mount options used instead the options given in opts
when the mount location is on a remote retwork.
A number of options aren't available or aren't yet implemented
within autofs, these are:
cache
The cacheoption isn't used by autofs. The map entry cache is continually updated and stale
entries cleaned on re-load when map changes are detected so these configuration entries are
not used. The regex map key matching is not implemented and may not be due to the
potential overhead of the full map scans needed on every key lookup.
cachedir
The cachefs filesystem is not available on Linux, a different implementation is used for
caching network mounted file systems.
mount,unmount,umount
These options are used by the amd program mount type which is not yet implemented.
delay
This option is not used by the autofs implementation and is ignored.
Description
The automounter maps are FILE, NIS, NISPLUS or LDAP (including LDAP via SSS) referred to by the master
map of the automounter (see auto.master(5)). These maps describe how file systems below the mount point
of the map (given in the master map) are to be mounted. This page describes the sun map format; if
another map format, other than amd, is specified (e.g. hesiod), this documentation does not apply.
Indirect maps, except for the internal hosts map, can be changed on the fly and the automouter will
recognize those changes on the next operation it performs on that map. Direct maps require a HUP signal
be sent to the daemon to refresh their contents as does the master map.
Example
Example NFS mount map:
Assuming we have the autofs master map entry:
/test file,amd:/etc/amd.test
And the following map in /etc/amd.test:
/defaults type:=nfs;rhost:=bilbo
apps rfs:=/autofs
util rhost:=zeus;rfs:=/work/util
local rfs:=/shared;sublink:=local
In the first line we have an NFS remote mount of the exported directory /autofs from host bilbo which
would be mounted on /test/apps. Next another nfs mount for the exported directory /work/util from host
zeus. This would be mounted on /test/util.
Finally, we have an example of the use of the sublink option. In this case the filesystem bilbo:/shared
would be mounted on a path external the automount directory (under the directory given by configuration
option auto_dir) and the path /test/local either symlinked or bind mounted (depending on the setting
autofs_use_lofs) to the "local" subdirectory of the external mount.
Features
KeyMatching
The amd parser key matching is unusual.
The key string to be looked up is constructed by prepending the prefix, if there is one.
The resulting relative path string is matched by first trying the sting itself. If no match is found the
last component of the key string is replaced with the wildcard match character ("*") and a wildcard match
is attempted. This process continues until a match is found or until the last match, against the wildcard
match key alone, fails to match a map entry and the key lookup fails.
MacroUsage
Macros are used a lot in the autofs amd implementation.
Many of the option values are set as macro variables corresponding to the option name during the map
entry parse. So they may be used in subsequent option values. Beware though, the order in which option
values is not necessarily left to right so you may get unexpected results.
Name
autofs - Format of the automounter maps
Notes
To be able to use IPv6 within autofs maps the package must be build to use the libtirpc library for its
RPC communications. This is because the glibc RPC implementation doesn't support IPv6 and is deprecated
so this is not likely to change.
See Also
automount(8), auto.master(5), autofs(8), autofs.conf(5), mount(8), autofs_ldap_auth.conf(5).
Sun Format
This is a description of the text file format. Other methods of specifying these files may exist. All
empty lines or lines beginning with # are ignored. The basic format of one line in such maps is:
key [-options] locationkey
For indirect mounts this is the part of the path name between the mount point and the path into
the filesystem when it is mounted. Usually you can think about the key as a sub-directory name
below the autofs managed mount point.
For direct mounts this is the full path of each mount point. This map is always associated with
the /- mount point in the master map.
options
Zero or more options may be given. Options can also be given in the auto.master file in which
case both values are cumulative (this is a difference from SunOS). The options are a list of
comma separated options as customary for the mount(8) command.
There are several special options
-fstype=
is used to specify a filesystem type if the filesystem is not of the default NFS type.
This option is processed by the automounter and not by the mount command.
-strict
is used to treat errors when mounting file systems as fatal. This is important when
multiple file systems should be mounted (`multi-mounts'). If this option is given, no file
system is mounted at all if at least one file system can't be mounted.
-use-weight-only
is used to make the weight the sole factor in selecting a server when multiple servers are
present in a map entry.
-no-use-weight-only
can be used to negate the option if it is present in the master map entry for the map but
is not wanted for the given mount.
location
The location specifies from where the file system is to be mounted. In the most cases this will
be an NFS volume and the usual notation host:pathname is used to indicate the remote filesystem
and path to be mounted. If the filesystem to be mounted begins with a / (such as local /dev
entries or smbfs shares) a : needs to be prefixed (e.g. :/dev/sda1).
Unsupported
This version of the automounter supports direct maps stored in FILE, NIS, NISPLUS and LDAP (including
LDAP via SSS) only.
