AUTOFS(5) File Formats Manual AUTOFS(5)
NAME
autofs - Format of the automounter maps
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.mas-
ter(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 de-
scribes 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 opera-
tion 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.
SUN FORMAT
This is a description of the text file format. Other methods of speci-
fying 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] location
key
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 fa-
tal. 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).
EXAMPLE
Indirect map:
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
In the first line we have a NFS remote mount of the kernel directory on
ftp.kernel.org. This is mounted read-only. The second line mounts an
ext2 volume from a local ide drive. The third makes a share exported
from a Windows machine available for automounting. The rest should be
fairly self-explanatory. The last entry (the last three lines) is an
example of a multi-map (see below).
If you use the automounter for a filesystem without access permissions
(like vfat), users usually can't write on such a filesystem because it
is mounted as user root. You can solve this problem by passing the op-
tion gid=<gid>, e.g. gid=floppy. The filesystem is then mounted as
group floppy instead of root. Then you can add the users to this group,
and they can write to the filesystem. Here's an example entry for an
autofs map:
floppy-vfat -fstype=vfat,sync,gid=floppy,umask=002 :/dev/fd0
Direct map:
/nfs/apps/mozilla bogus:/usr/local/moxill
/nfs/data/budgets tiger:/usr/local/budgets
/tst/sbin bogus:/usr/sbin
FEATURES
Map Key Substitution
An & character in the location is expanded to the value of the key
field that matched the line (which probably only makes sense together
with a wildcard key).
Wildcard Key
A map key of * denotes a wild-card entry. This entry is consulted if
the specified key does not exist in the map. A typical wild-card entry
looks like this:
* server:/export/home/&
The special character '&' will be replaced by the provided key. So, in
the example above, a lookup for the key 'foo' would yield a mount of
server:/export/home/foo.
Variable Substitution
The following special variables will be substituted in the location
field of an automounter map entry if prefixed with $ as customary from
shell scripts (curly braces can be used to separate the field name):
ARCH Architecture (uname -m)
CPU Processor Type
HOST Hostname (uname -n)
OSNAME Operating System (uname -s)
OSREL Release of OS (uname -r)
OSVERS Version of OS (uname -v)
autofs provides additional variables that are set based on the user re-
questing the mount:
USER The user login name
UID The user login ID
GROUP The user group name
GID The user group ID
HOME The user home directory
SHOST Short hostname (domain part removed if present)
If a program map is used these standard environment variables will have
a prefix of "AUTOFS_" to prevent interpreted languages like python from
being able to load and execute arbitrary code from a user home direc-
tory.
Additional entries can be defined with the -Dvariable=Value map-option
to automount(8).
Executable Maps
A map can be marked as executable. A program map will be called with
the key as an argument. It may return no lines of output if there's an
error, or one or more lines containing a map entry (with \ quoting line
breaks). The map entry corresponds to what would normally follow a map
key.
An executable map can return an error code to indicate the failure in
addition to no output at all. All output sent to stderr is logged into
the system logs.
Multiple Mounts
A multi-mount map can be used to name multiple filesystems to mount.
It takes the form:
key [ -options ] [[/] location [/relative-mount-point [ -options ] location...]...
This may extend over multiple lines, quoting the line-breaks with `\'.
If present, the per-mountpoint mount-options are appended to the de-
fault mount-options. This behaviour may be overridden by the append_op-
tions configuration setting.
Replicated Server
A mount location can specify multiple hosts for a location, porten-
tially with a different export path for the same file system. Histori-
cally these different locations are read-only and provide the same
replicated file system.
Multiple replicated hosts, same path:
<path> host1,host2,hostn:/path/path
Multiple hosts, some with same path, some with another
<path> host1,host2:/blah host3:/some/other/path
Multiple replicated hosts, different (potentially) paths:
<path> host1:/path/pathA host2:/path/pathB
Multiple weighted, replicated hosts same path:
<path> host1(5),host2(6),host3(1):/path/path
Multiple weighted, replicated hosts different (potentially) paths:
<path> host1(3):/path/pathA host2(5):/path/pathB
Anything else is questionable and unsupported, but these variations will also work:
<path> host1(3),host:/blah
UNSUPPORTED
This version of the automounter supports direct maps stored in FILE,
NIS, NISPLUS and LDAP (including LDAP via SSS) only.
AMD FORMAT
This is a description of the text file format. Other methods of speci-
fying 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:
key location-list
key
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 loca-
tions 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 selec-
tors, 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 config-
uration, 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 configura-
tion, is obtained using uname(2).
osver
The operating system version, if not set in the configu-
ration, is obtained using uname(2).
full_os
The full operating system name, if not set in the config-
uration this selector has no value.
vendor
The operating system vendor name, if not set in the con-
figuration 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 con-
figuration 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 config-
uration 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 re-
quested 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 re-
quested 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 re-
quested.
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 re-
turns true if network belongs to the network the inter-
face 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 mem-
ber 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() ex-
cept 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 re-
quests.
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 en-
try key.
opts
The opts option is used to specify mount options to be
used for the mount. If a "-" is given it is ignored. Op-
tions 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 cache option 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 configura-
tion entries are not used. The regex map key matching is
not implemented and may not be due to the potential over-
head of the full map scans needed on every key lookup.
cachedir
The cachefs filesystem is not available on Linux, a dif-
ferent 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.
FEATURES
Key Matching
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.
Macro Usage
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 sub-
sequent option values. Beware though, the order in which option values
is not necessarily left to right so you may get unexpected results.
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 an-
other 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 op-
tion auto_dir) and the path /test/local either symlinked or bind
mounted (depending on the setting autofs_use_lofs) to the "local" sub-
directory of the external mount.
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), aut-
ofs_ldap_auth.conf(5).
AUTHOR
This manual page was written by Christoph Lameter <chris@waterf.org>,
for the Debian GNU/Linux system. Edited by H. Peter Avian <hpa@trans-
meta.com>, Jeremy Fitzhardinge <jeremy@goop.org> and Ian Kent
<raven@themaw.net>.
9 Feb 2014 AUTOFS(5)