pam_mount.conf man page on OpenSuSE

Man page or keyword search:  
man Server   25941 pages
apropos Keyword Search (all sections)
Output format
OpenSuSE logo
[printable version]

pam_mount.conf(5)		pam_mount 2.14		     pam_mount.conf(5)

Name
       pam_mount.conf - Description of the pam_mount configuration file

Overview
       The  pam_mount  configuration  file  defines soft defaults for commands
       pam_mount will be executing, the messages it will show, and which  vol‐
       umes to mount on login. Since pam_mount 0.18, the configuration file is
       written in XML so as to simplify the pam_mount code base	 while	giving
       formatting  freedom to the end-user. Special characters like <, > and &
       that are used by XML itself must be encoded as <,  >  and	&,
       respectively;  additionally,  "	must  be encoded as " within a ""
       area, but these three/four symbols are unlikely to be seen  often  any‐
       way.

       Do  not use comments inside elements taking verbatim text, like <fuser‐
       mount></fusermount> - this is not handled by  the  pam_mount  XML  tree
       parser.

Volume definitions
       Volumes	are  defined  with the <volume> element, which primarily takes
       the parameters as attributes, such as

       <volume	user="joe"  fstype="nfs"  server="fsbox"  path="/home/%(USER)"
       mountpoint="/bigdisk/%(USER)" />

       and define to mount what for whom and how. There are a lot of tunables,
       which are described in this section.

   Simple user control
       The following attributes control whether the volume  is	going  to  get
       mounted	once the user logs in. By default, volumes apply to all users,
       and specifying attributes limits it to the given conditions, i.e.  they
       are  logically  ANDed.	There is a more powerful and verbose mechanism
       for specifying complex conditions, described further below in the  sec‐
       tion "Extended user control".

       user="username"
	      Limit the volume to the specified user, identified by name

       uid="number" or uid="number-number"
	      Limit  the volume to the specified user(s), identified by UID or
	      UID range.

       pgrp="groupname"
	      Limit the volume to users which have  the	 group	identified  by
	      name as their primary group.

       gid="number" or gid="number-number"
	      Limit  the  volume to users which have the group(s) given by GID
	      or GID range as a primary group.

       sgrp="groupname"
	      Limit the volume to users which are a member of the group	 iden‐
	      tified by name (either as primary or secondary group).

   Volume configuration
       The following attributes select volume source, destination, options and
       so on.

       fstype="type"
	      The  filesystem  type,  which  can  be  anything	your   kernel,
	      userspace	 and  pam_mount	 understand. If the fstype specifies a
	      pam_mount-special type, pam_mount will handle it. Otherwise, the
	      fstype  is  passed  to  mount(8)	which then in turn looks for a
	      userspace helper /sbin/mount.fstype and runs that if it  exists,
	      and in any other case, mount(8) would call mount(2) to cause the
	      kernel to directly mount it. mount(8) knows of an	 auto  fstype,
	      which  might be helpful in some cases. Not specifying the fstype
	      attribute implies fstype="auto". Note that  mounting  with  auto
	      may  fail	 if  the  filesystem  kernel module is not loaded yet,
	      since mount(8) will check /proc/partitions.

	      The fstypes cifs, smbfs, ncpfs, fuse, nfs and nfs are  overriden
	      by  pam_mount and we run the respective helper programs directly
	      instead of invoking mount(8) with the basic default set of argu‐
	      ments  which  are	 often insufficient for networked filesystems.
	      See this manpage's section "Examples" below for more details.

       noroot="1"
	      Call the mount program without root privileges. It  defaults  to
	      yes for the fuse fstype, because FUSE volumes must be mounted as
	      the user that logs in to get access to the files by default.

       server="name"
	      Defines the server to which to connect in case  of  cifs,	 smbfs
	      and  ncpfs  and  nfs  fstypes.  For  all	other  fs  types, this
	      attribute is ignored. You can also specify  the  server  in  the
	      path  attribute instead, but need to adhere to the specific syn‐
	      tax that is a  particular	 fstype	 requires.   (E.g.  CIFS  uses
	      "//server/path", whereas NFS uses "server:path", etc.)

       path="path"
	      This  mandatory  attribute specifies the location of the volume,
	      relative to the server (if specified).

       mountpoint="directory"
	      This specifies the destination directory onto which  the	volume
	      is mounted.  "~" expands to the user's home directory as present
	      in the passwd database, according to sh  semantics.  "~name"  is
	      not  supported.  If  this	 attribute is omitted, the location is
	      read from /etc/fstab, which also requires path to be a device or
	      a source directory of an fstab entry.

       options="..."
	      Specifies	 the  mount options. If omitted and /etc/fstab is used
	      (see mountpoint), the options will also be sources from fstab.

       ssh="0" or ssh="1"
	      The ssh option enables  an  input	 hack  wrapper	(zerossh,  see
	      pmt-fd0ssh(1))  for this volume to hand the password to ssh over
	      an ssh-specific mechanism. Enable	 this  option  for  any	 mount
	      involving	 the SSH binary, e.g. ccgfs or sshfs. Do not enable it
	      for anything else or the login will most likely hang.

       cipher="cipher"
	      Cryptsetup cipher name for the volume. To be used with the crypt
	      fstype.

       fskeycipher="ciphertype"
	      OpenSSL  cipher  name  for  the fskey. Use with the crypt fstype
	      (dm-crypt and LUKS). The special cipher keyword  "none"  may  be
	      used  to directly pass the file's contents to cryptsetup without
	      decryption by OpenSSL.

       fskeyhash="hash"
	      OpenSSL hash name for the fskey.

       fskeypath="path"
	      Path to the filesystem key.

Variables
       Within attributes and commands (see later section), specific placehold‐
       ers  or variables, identified by %(name) may be used. These are substi‐
       tuted at command invocation time.

       %(USER)
	      Expands to the username of the user logging in.

       %(DOMAIN_NAME), %(DOMAIN_USER)
	      Winbind has special UNIX usernames in the form of	 "domain\user‐
	      name",  and  %(DOMAIN_NAME) and %(DOMAIN_USER) provide the split
	      parts of it. This is useful when a sharename on an  MSAD	server
	      is   the	same  as  the  username,  e.g.	<volume	 fstype="cifs"
	      server="fsbox" path="%(DOMAIN_USER)" />.

       %(USERUID), %(USERGID)
	      The numeric UID and GID of the primary group of the user logging
	      in.   This  is obtained via getpw*(), not getuid(). It is useful
	      in conjunction with the uid= or gid= mount options, e.g. <volume
	      options="uid=%(USERUID)"	/>. Note that you do not need to spec‐
	      ify uid=%(USERUID) for smbfs or  cifs  mounts  because  this  is
	      already done automatically by pam_mount.

       %(GROUP)
	      The name of the group for %(USERGID).

       All  other  variables you might find in the source code are internal to
       pam_mount, and are likely not to be expanded when you would expect it.

pam_mount parameters
       Besides volumes, there are other elements allowed in pam_mount.conf.xml
       that control pam_mount's own behavior.

   General tunables
       <debug enable="1" />
	      Enables  verbose	output during login to stderr and syslog. Some
	      programs	do  not	 cope  with  output  sent   on	 stderr,   see
	      doc/bugs.txt  for	 a  list.  0  disables	debugging,  1  enables
	      pam_mount	 tracing,  and	2  additionally	 enables  tracing   in
	      mount.crypt. The default is 0. As the config file is parsed lin‐
	      early, the <debug> directive takes effect once it is seen	 -  it
	      it thus advised to put it near the start of the file, before any
	      <volume> definitions.

       <logout wait="microseconds" hup="yes/no" term="yes/no" kill="yes/no" />
	      Programs exist that do not terminate when the session is closed.
	      (This applies to the "final" close, i.e. when the last user ses‐
	      sion ends.) Examples are processes still running	in  the	 back‐
	      ground;  or a broken X session manager that did not clean up its
	      children, or other X programs that did not react to the X server
	      termination  notification.  pam_mount  can be configured to kill
	      these processes and optionally wait before sending signals.

       <luserconf name=".pam_mount.conf.xml" />
	      Individual users may define additional volumes in a file by  the
	      specified name relative to their home directory. The presence of
	      <luserconf> in the master config file enables this  feature.  If
	      turned  on, users may mount and unmount any volumes they specify
	      and that they have ownership of (in case of local	 mounts).  The
	      mount  process  is executed as superuser. This may have security
	      implications, so this feature is disabled by default.  Lusercon‐
	      figs  are parsed after any volumes from the global configuration
	      file have been mounted, so that first mounting home  directories
	      with  a  global  config  and  then mounting further volumes from
	      luserconfigs is possible.

       <mntoptions allow="options,..." />
	      The <mntoptions> elements determine which options may be	speci‐
	      fied  in	<volumes> in per-user configuration files (see <luser‐
	      conf>). It does not apply to the master file. Specifying <mntop‐
	      tions> is forbidden and ignored in per-user configs. The default
	      allowed list consists of "nosuid,nodev",	and  this  default  is
	      cleared when the first allow="..." attribute is seen by the con‐
	      fig parser. All further allow="..." are additive, though.

       <mntoptions deny="options,..." />
	      Any options listed in deny may not appear in the option list  of
	      per-user mounts. The default deny list is empty.

       <mntoptions require="options,..." />
	      All  options listed in require must appear in the option list of
	      per-user	mounts.	 The  default	require	  list	 consists   of
	      "nosuid,nodev", and like allow="", is cleared when first encoun‐
	      tered by the parser, and is otherwise additive.

       <path>directories...</path>
	      The default for the PATH environmental variable is  not  consis‐
	      tent  across  distributions,  and so, pam_mount provides its own
	      set of sane defaults which you may change at will.

   Volume-related
       <mkmountpoint enable="1" remove="true" />
	      Controls automatic creation and removal  of  mountpoints.	 If  a
	      mountpoint  does	not  exist  when  the  volume  is  about to be
	      mounted, pam_mount can be instructed to  create  one  using  the
	      enable  attribute.  Normally,  directories  created this way are
	      retained after logout, but remove may be set to true  to	remove
	      the  mountpoint  again, but only if it was automatically created
	      by pam_mount in the same session before.

   Auxiliary programs
       Some mount programs need special default parameters to  properly	 func‐
       tion. It is good practice to specify uid= for CIFS for example, because
       it is mounted as root and would otherwise show files belonging to  root
       instead of the user logging in.

       <fd0ssh>program...</fd0ssh>
	      fd0ssh  is  a hack around OpenSSH that essentially makes it read
	      passwords from stdin even though OpenSSH normally	 does  not  do
	      that.

       <fsck>fsck -p %(FSCKTARGET)</fsck>
	      Local volumes will be checked before mounting if this program is
	      set.

       <ofl>ofl -k%(SIGNAL) %(MNTPT)</ofl>
	      The Open File Lister is used to identify processes  using	 files
	      within  the  given subdirectory, and optionally send a signal to
	      those processes.

       <pmvarrun>pmvarrun ...</pmvarrun>
	      pmvarrun(8) is a separate program to manage the reference	 count
	      tracking user sessions.

   Mount programs
       Commands	 to mount/unmount volumes. They can take parameters, as shown.
       You can specify either absolute paths, or relative ones, in which  case
       $PATH  will  be	searched.  Since login programs have differing default
       PATHs, pam_mount has its own path definition (see above).

       <lclmount>mount -p0 -t %(FSTYPE) ...</lclmount>
	      The regular mount program.

       <umount>umount %(MNTPT)</umount>
	      Unless there is a dedicated umount program for a given  filesys‐
	      tem type, the regular umount program will be used.

	      Linux supports lazy unmounting using `/sbin/umount -l`. This may
	      be dangerous for encrypted volumes because the underlying device
	      is not unmapped. Loopback devices are also affected by this (not
	      being unmapped when files are still open). Also, unmount on  SMB
	      volumes needs to be called on %(MNTPT) and not %(VOLUME).

       Commands	 for  various  mount programs. Not all have a dedicated umount
       helper because some do not need one.

       <cifsmount>mount.cifs ...</cifsmount>

       <cryptmount>mount.crypt ...</cryptmount>

       <cryptumount>umount.crypt %(MNTPT)</cryptumount>
	      Mount helpers for dm-crypt and LUKS volumes.

       <fusemount>mount.fuse ...</fusemount>

       <fuseumount>fuserumount ...</fuseumount>

       <ncpmount>ncpmount ...</ncpmount>

       <ncpumount>ncpumount ...</ncpumount>

       <nfsmount>mount %(SERVER):%(VOLUME) ...</nfsmount>

       <smbmount>smbmount ...</smbmount>

       <smbumount>smbumount ...</smbumount>

   Messages
       <msg-authpw>pam_mount password:</msg-authpw>
	      When pam_mount cannot obtain a password through PAM, or is  con‐
	      figured  to  not	do so in the first place, and is configured to
	      ask for a password interactively as a replacement,  this	prompt
	      will be shown.

       <msg-sessionpw>reenter...:</msg-sessionpw>
	      In case the 'session' PAM block does not have the password (e.g.
	      on su from root to user), it will ask  again.  This  prompt  can
	      also be customized.

Extended user control
       Sometimes,  the simple user control attributes for the <volume> element
       are not sufficient where one may want to build more complex expressions
       as  to whom a volume applies. Instead of attributes, extended user con‐
       trol is set up using additional elements within <volume>, for example

       <volume	path="/dev/shm"	 mountpoint="~">  <and>	 <sgrp>students</sgrp>
       <not> <sgrp>profs</sgrp> </not> </and> </volume>

       Which translates to (students && !profs).

   Logical operators
       <and><elements>*</and>
	      All  elements within this one are logically ANDed. Any number of
	      elements may appear.

       <or><elements>*</or>
	      All elements within this one are logically ORed. Any  number  of
	      elements may appear.

       <xor><elements>{2}</xor>
	      The two elements within the <xor> are logically XORed.

       <not><element></not>
	      The single element within the <not> is logically negated.

   User selection
       <user>username</user>
	      Match against the given username.

       <uid>number</uid> or <uid>number-number</uid>
	      Match the UID of the user logging in against a UID or UID range.

       <gid>number</gid> or <gid>number-number</gid>
	      Match  the primary group of the user logging in against a GID or
	      GID range.

       <pgrp>groupname</pgrp>
	      Check if the user logging in has groupname as the primary group.

       <sgrp>groupname</sgrp>
	      Check if the user logging in is a member of the group  given  by
	      name (i.e. it is either a primary or secondary group).

   Attributes
       icase="yes" or icase="no"
	      The  icase attribute may be used on <user>, <pgrp> and <sgrp> to
	      enable case-insensitive matching (or not). It defaults to "no".

       regex="yes" (or no)
	      The regex attribute may be used on <user>, <pgrp> and <sgrp>  to
	      enable  interpreting  the text content of the tag as a Perl-com‐
	      patible regular expression pattern. This attribute may  be  com‐
	      bined    with    "icase"	  (see	  above).    Example:	 <user
	      regex="yes">joe</user> matches  any  user	 who  has  the	letter
	      sequence	"joe"  anywhere	 in  their username. Therefor, use the
	      regex feature cautiously and consider adding ^ and $ anchors  to
	      limit	  security	 surprises.	  Example:	 <user
	      regex="yes">^.*joe.*$</user> if you really wanted to  match  the
	      sequence at any position.

Examples
       Remember	 that  ~ can be used in the mountpoint attribute to denote the
       home directory as retrievable through getpwent(3).

   sshfs and ccgfs
       Not specifying any path after the colon (:) uses the path whereever ssh
       will put you in, usually the home directory.

       <volume	fstype="fuse"  path="sshfs#%(USER)@fileserver:" mountpoint="~"
       />

       <volume	 fstype="fuse"	  path="ccgfs-ssh-pull#%(USER)@host:directory"
       mountpoint="~" />

   encfs 1.4.x and up
       <volume	 fstype="fuse"	 path="encfs#/crypto/%(USER)"	mountpoint="~"
       options="nonempty" />

       (encfs 1.3 is no longer supported.)

   NFS mounts
       <volume fstype="nfs"  server="fileserver"  path="/home/%(USER)"	mount‐
       point="~" />

   CIFS/SMB mounts
       <volume	 user="user"   fstype="smbfs"  server="krueger"	 path="public"
       mountpoint="/home/user/krueger" />

   NCP mounts
       <volume	user="user"  fstype="ncpfs"   server="krueger"	 path="public"
       mountpoint="/home/user/krueger" options="username=user.context" />

   Bind mounts
       This may come useful in conjunction with pam_chroot:

       <volume path="/bin" mountpoint="~/bin" options="bind" />

   tmpfs mounts
       Volatile	 tmpfs	mount  with restricted size (thanks to Mike Hommey for
       this example):

       <volume	   user="test"	   fstype="tmpfs"      mountpoint="/home/test"
       options="size=10M,uid=%(USER),mode=0700" />

   dm-crypt volumes
       Crypt   mounts	require	 a  kernel  with  CONFIG_BLK_DEV_DM  and  CON‐
       FIG_DM_CRYPT enabled, as well as all the ciphers that are going	to  be
       used,	e.g.	 CONFIG_CRYPTO_AES,    CONFIG_CRYPTO_BLOWFISH,	  CON‐
       FIG_CRYPTO_TWOFISH.

       <volume		   path="/home/%(USER).img"		mountpoint="~"
       cipher="aes-cbc-essiv:sha256"	  fskeycipher="aes-256-cbc"	fskey‐
       hash="sha1" fskeypath="/home/%(USER).key" />

   LUKS volumes
       <volume		   path="/home/%(USER).img"		mountpoint="~"
       cipher="aes-cbc-essiv:sha256" />

   cryptoloop volumes
       cryptoloop  is  not explicitly supported by pam_mount. Citing the Linux
       kernel config help text: "WARNING: This device [cryptoloop] is not safe
       for  journal[l]ed  filesystems[...].  Please use the Device Mapper [dm-
       crypt] module instead."

   OpenBSD encrypted home
       OpenBSD encrypted home directory example:

       <volume path="/home/user.img"  mountpoint="/home/user"  options="svnd0"
       />

pam_mount 2.14			  2013-08-27		     pam_mount.conf(5)
[top]

List of man pages available for OpenSuSE

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net