Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MOUNT_FUSEFS(8) 	     System Manager's Manual		 MOUNT_FUSEFS(8)

NAME
     mount_fusefs -- mount a Fuse file system daemon

SYNOPSIS
     mount_fusefs [-A] [-S] [-v] [-D fuse_daemon] [-O daemon_opts] [-s special]
		  [-m node] [-h] [-V] [-o option ...] special node
		  [fuse_daemon ...]

DESCRIPTION
     Basic  usage is to start a fuse daemon on the given special file.	In prac-
     tice, the daemon is assigned a special file automatically, which  can  then
     be  identified  via  fstat(1).   That  special  file can then be mounted by
     mount_fusefs.

     However, the procedure of spawning a daemon will usually  be  automated  so
     that  it  is  performed  by  mount_fusefs.  If the command invoking a given
     fuse_daemon is appended to the list of arguments,	mount_fusefs  will  call
     the  fuse_daemon via that command.  In that way the fuse_daemon will be in-
     structed to attach itself to special.  From that on mounting goes as in the
     simple case. (See "DAEMON MOUNTS".)

     The special argument will normally be treated as the path	of  the  special
     file to mount.

     However,  if  auto  is passed as special, then mount_fusefs will look for a
     suitable free fuse device by itself.

     Finally, if special is an integer it will be interpreted as the  number  of
     the  file descriptor of an already open fuse device (used when the Fuse li-
     brary invokes mount_fusefs.  See "DAEMON MOUNTS").

     The options are as follows:

     -A, --reject-allow_other
	     Prohibit the allow_other mount flag.  Intended for use  in  scripts
	     and the sudoers(5)(ports/security/sudo) file.

     -S, --safe
	     Run in safe mode (i.e., reject invoking a filesystem daemon).

     -v      Be verbose.

     -D, --daemon daemon
	     Call the specified daemon.

     -O, --daemon_opts opts
	     Add opts to the daemon's command line.

     -s, --special special
	     Use special as special.

     -m, --mountpath node
	     Mount on node.

     -h, --help
	     Show help.

     -V, --version
	     Show version information.

     -o      Mount  options  are  specified  via  -o.  The following options are
	     available (and also their negated versions, by prefixing them  with
	     "no"):

	     allow_other
		     Do  not  apply  "STRICT  ACCESS POLICY".  Only root can use
		     this option.

	     async   I/O to the file system may be done asynchronously.   Writes
		     may be delayed and/or reordered.

	     default_permissions
		     Enable traditional (file mode based) permission checking in
		     kernel.

	     intr    Allow  signals  to  interrupt  operations	that are blocked
		     waiting for a reply from the server.  When this  option  is
		     in  use, system calls may fail with EINTR whenever a signal
		     is received.

	     max_read=n
		     Limit size of read requests to n.

	     neglect_shares
		     Do not refuse unmounting if there are secondary mounts.

	     private
		     Refuse shared mounting of the daemon.  This is the  default
		     behaviour, to allow sharing, explicitly use -o noprivate.

	     push_symlinks_in
		     Prefix absolute symlinks with the mountpoint.

	     subtype=fsname
		     Suffix  fsname  to  the  file  system  name  as reported by
		     statfs(2).  This option can be used to  identify  the  file
		     system implemented by fuse_daemon.

     Besides  the  above  mount  options, there is a set of pseudo-mount options
     which are supported by the Fuse library.  One can list these by passing  -h
     to  a  Fuse daemon.  Most of these options only have effect on the behavior
     of the daemon (that is, their scope is  limited  to  userspace).	However,
     there  are  some which do require in-kernel support.  Currently the options
     supported by the kernel are:

     direct_io
	     Bypass the buffer cache system.

     kernel_cache
	     By default cached buffers of a  given  file  are  flushed	at  each
	     open(2).  This option disables this behaviour.

DAEMON MOUNTS
     Usually users do not need to use mount_fusefs directly, as the Fuse library
     enables Fuse daemons to invoke mount_fusefs.  That is,

	   fuse_daemon device mountpoint

     has the same effect as

	   mount_fusefs auto mountpoint fuse_daemon

     This is the recommended usage when you want basic usage (eg, run the daemon
     at a low privilege level but mount it as root).

STRICT ACCESS POLICY
     The  strict  access policy for Fuse filesystems lets one use the filesystem
     only if the filesystem daemon has the same credentials (uid, real uid, gid,
     real gid) as the user.

     This is applied for Fuse mounts by default and only root can mount  without
     the strict access policy (i.e., the allow_other mount option).

     This is to shield users from the daemon "spying" on their I/O activities.

     Users might opt to willingly relax strict access policy (as far as they are
     concerned) by doing their own secondary mount (See "SHARED MOUNTS").

SHARED MOUNTS
     A Fuse daemon can be shared (i.e., mounted multiple times).  When doing the
     first  (primary) mount, the spawner and the mounter of the daemon must have
     the same uid, or the mounter should be the superuser.

     After the primary mount is in place, secondary mounts can be done by anyone
     unless this feature is disabled by private.  The behaviour of  a  secondary
     mount  is analogous to that of symbolic links: they redirect all filesystem
     operations to the primary mount.

     Doing a secondary mount is like signing an agreement: by this  action,  the
     mounter  agrees  that  the  Fuse daemon can trace her I/O activities.  From
     then on she is not banned from using the filesystem  (either  via	her  own
     mount  or via the primary mount), regardless whether allow_other is used or
     not.

     The device name of a secondary mount is the device name of the  correspond-
     ing  primary  mount,  followed by a '#' character and the index of the sec-
     ondary mount; e.g., /dev/fuse0#3.

SECURITY
     System administrators might want to use a custom mount policy (ie., one go-
     ing beyond the vfs.usermount sysctl).  The primary tool for  such	purposes
     is sudo(8)(ports/security/sudo).  However, given that mount_fusefs is capa-
     ble  of invoking an arbitrary program, one must be careful when doing this.
     mount_fusefs is designed in a way such that it makes that easy.   For  this
     purpose,  there  are  options  which disable certain risky features (-S and
     -A), and command line parsing is done in a flexible way: mixing options and
     non-options is allowed, but processing them stops at the  third  non-option
     argument (after the first two have been utilized as device and mountpoint).
     The  rest of the command line specifies the daemon and its arguments.  (Al-
     ternatively, the daemon, the special and the mount path  can  be  specified
     using  the respective options.) Note that mount_fusefs ignores the environ-
     ment variable POSIXLY_CORRECT and always behaves as described.

     In general, to be as scripting /  sudoers(5)(ports/security/sudo)	friendly
     as  possible,  no information has a fixed position in the command line, but
     once a given piece of information is provided, subsequent arguments/options
     cannot override it (with the exception of some non-critical ones).

ENVIRONMENT
     MOUNT_FUSEFS_SAFE	This has the same effect as the -S option.

     MOUNT_FUSEFS_VERBOSE
			This has the same effect as the -v option.

     MOUNT_FUSEFS_IGNORE_UNKNOWN
			If set, mount_fusefs will ignore unknown mount options.

     MOUNT_FUSEFS_CALL_BY_LIB
			Adjust behavior to the needs of the FUSE library.   Cur-
			rently it effects help output.

     Although the following variables do not have any effect on mount_fusefs it-
     self, they affect the behaviour of fuse daemons:

     FUSE_DEV_NAME  Device   to  attach.   If  not  set,  the  multiplexer  path
		    /dev/fuse is used.

     FUSE_DEV_FD    File descriptor of an opened Fuse device to use.   Overrides
		    FUSE_DEV_NAME.

     FUSE_NO_MOUNT  If	set,  the library will not attempt to mount the filesys-
		    tem, even if a mountpoint argument is supplied.

FILES
     /dev/fuse	Fuse device with which the kernel and Fuse daemons can	communi-
		cate.

     /dev/fuse	The  multiplexer path.	An open(2) performed on it automatically
		is passed to a free Fuse device by the kernel  (which  might  be
		created just for this puprose).

EXAMPLES
     Mount the example filesystem in the Fuse distribution (from its directory):
     either

	   ./fusexmp /mnt/fuse

     or

	   mount_fusefs auto /mnt/fuse ./fusexmp

     Doing the same in two steps, using /dev/fuse0:

	   FUSE_DEV_NAME=/dev/fuse ./fusexmp &&
	   mount_fusefs /dev/fuse /mnt/fuse

     A	script wrapper for fusexmp which ensures that mount_fusefs does not call
     any external utility and also provides a hacky  (non  race-free)  automatic
     device selection:

	   #!/bin/sh -e

	   FUSE_DEV_NAME=/dev/fuse fusexmp
	   mount_fusefs -S /dev/fuse /mnt/fuse "$@"

SEE ALSO
     fstat(1), mount(8), sudo(8)(ports/security/sudo), umount(8)

HISTORY
     mount_fusefs  was	written as the part of the FreeBSD implementation of the
     Fuse	  userspace	     filesystem 	 framework	    (see
     https://github.com/libfuse/libfuse)    and    first    appeared	in   the
     sysutils/fusefs-kmod port, supporting FreeBSD 6.0.  It  was  added  to  the
     base system in FreeBSD 10.0.

CAVEATS
     This  user  interface  is FreeBSD specific.  Secondary mounts should be un-
     mounted via their device name.  If an attempt is made to unmount  them  via
     their  filesystem	root  path, the unmount request will be forwarded to the
     primary mount path.  In general, unmounting by device name is  less  error-
     prone  than  by mount path (although the latter will also work under normal
     circumstances).

     If the daemon is specified via the -D and -O options, it  will  be  invoked
     via  system(3), and the daemon's command line will also have an "&" control
     operator appended, so that we do not have to wait for its termination.  You
     should use a simple command line when invoking the  daemon  via  these  op-
     tions.

BUGS
     special is treated as a multiplexer if and only if it is literally the same
     as  auto  or  /dev/fuse.	Other  paths which are equivalent with /dev/fuse
     (eg., /../dev/fuse) are not.

FreeBSD ports 15.1		 October 9, 2021		 MOUNT_FUSEFS(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mount_fusefs&sektion=8&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help