Deleted Added
full compact
mount_fusefs.8 (256281) mount_fusefs.8 (306996)
1.\" Copyright (c) 1980, 1989, 1991, 1993
2.\" The Regents of the University of California.
3.\" Copyright (c) 2005, 2006 Csaba Henk
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:

--- 13 unchanged lines hidden (view full) ---

22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE.
29.\"
1.\" Copyright (c) 1980, 1989, 1991, 1993
2.\" The Regents of the University of California.
3.\" Copyright (c) 2005, 2006 Csaba Henk
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:

--- 13 unchanged lines hidden (view full) ---

22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE.
29.\"
30.\" $FreeBSD: stable/10/sbin/mount_fusefs/mount_fusefs.8 241527 2012-10-14 07:22:56Z joel $
30.\" $FreeBSD: stable/10/sbin/mount_fusefs/mount_fusefs.8 306996 2016-10-10 16:38:07Z sevan $
31.\"
31.\"
32.Dd October 11, 2012
32.Dd October 3, 2016
33.Dt MOUNT_FUSEFS 8
34.Os
35.Sh NAME
36.Nm mount_fusefs
37.Nd mount a Fuse file system daemon
38.Sh SYNOPSIS
39.Nm
40.Op Fl A

--- 6 unchanged lines hidden (view full) ---

47.Op Fl h
48.Op Fl V
49.Op Fl o Ar option ...
50.Ar special node
51.Op Ar fuse_daemon ...
52.Sh DESCRIPTION
53Basic usage is to start a fuse daemon on the given
54.Ar special
33.Dt MOUNT_FUSEFS 8
34.Os
35.Sh NAME
36.Nm mount_fusefs
37.Nd mount a Fuse file system daemon
38.Sh SYNOPSIS
39.Nm
40.Op Fl A

--- 6 unchanged lines hidden (view full) ---

47.Op Fl h
48.Op Fl V
49.Op Fl o Ar option ...
50.Ar special node
51.Op Ar fuse_daemon ...
52.Sh DESCRIPTION
53Basic usage is to start a fuse daemon on the given
54.Ar special
55file. In practice, the daemon is assigned a
55file.
56In practice, the daemon is assigned a
56.Ar special
57file automatically, which can then be indentified via
58.Xr fstat 1 .
59That special file can then be mounted by
60.Nm .
61.Pp
62However, the procedure of spawning a daemon will usually be automated
63so that it is performed by
64.Nm .
65If the command invoking a given
66.Ar fuse_daemon
67is appended to the list of arguments,
68.Nm
69will call the
70.Ar fuse_daemon
57.Ar special
58file automatically, which can then be indentified via
59.Xr fstat 1 .
60That special file can then be mounted by
61.Nm .
62.Pp
63However, the procedure of spawning a daemon will usually be automated
64so that it is performed by
65.Nm .
66If the command invoking a given
67.Ar fuse_daemon
68is appended to the list of arguments,
69.Nm
70will call the
71.Ar fuse_daemon
71via that command. In that way the
72via that command.
73In that way the
72.Ar fuse_daemon
73will be instructed to attach itself to
74.Ar special .
75From that on mounting goes as in the simple case. (See
76.Sx DAEMON MOUNTS . )
77.Pp
78The
79.Ar special

--- 16 unchanged lines hidden (view full) ---

96(See
97.Sx DAEMON MOUNTS ) .
98.Pp
99The options are as follows:
100.Bl -tag -width indent
101.It Fl A , Ic --reject-allow_other
102Prohibit the
103.Cm allow_other
74.Ar fuse_daemon
75will be instructed to attach itself to
76.Ar special .
77From that on mounting goes as in the simple case. (See
78.Sx DAEMON MOUNTS . )
79.Pp
80The
81.Ar special

--- 16 unchanged lines hidden (view full) ---

98(See
99.Sx DAEMON MOUNTS ) .
100.Pp
101The options are as follows:
102.Bl -tag -width indent
103.It Fl A , Ic --reject-allow_other
104Prohibit the
105.Cm allow_other
104mount flag. Intended for use in scripts and the
106mount flag.
107Intended for use in scripts and the
105.Xr sudoers 5
106file.
107.It Fl S , Ic --safe
108Run in safe mode (i.e. reject invoking a filesystem daemon)
109.It Fl v
110Be verbose
111.It Fl D, Ic --daemon Ar daemon
112Call the specified

--- 25 unchanged lines hidden (view full) ---

138.It Cm allow_other
139Do not apply
140.Sx STRICT ACCESS POLICY .
141Only root can use this option
142.It Cm max_read Ns = Ns Ar n
143Limit size of read requests to
144.Ar n
145.It Cm private
108.Xr sudoers 5
109file.
110.It Fl S , Ic --safe
111Run in safe mode (i.e. reject invoking a filesystem daemon)
112.It Fl v
113Be verbose
114.It Fl D, Ic --daemon Ar daemon
115Call the specified

--- 25 unchanged lines hidden (view full) ---

141.It Cm allow_other
142Do not apply
143.Sx STRICT ACCESS POLICY .
144Only root can use this option
145.It Cm max_read Ns = Ns Ar n
146Limit size of read requests to
147.Ar n
148.It Cm private
146Refuse shared mounting of the daemon. This is the default behaviour,
147to allow sharing, expicitly use
149Refuse shared mounting of the daemon.
150This is the default behaviour, to allow sharing, expicitly use
148.Fl o Cm noprivate
149.It Cm neglect_shares
150Do not refuse unmounting if there are secondary mounts
151.It Cm push_symlinks_in
152Prefix absolute symlinks with the mountpoint
153.El
154.Pp
155.El
156.Pp
157Besides the above mount options, there is a set of pseudo-mount options which
151.Fl o Cm noprivate
152.It Cm neglect_shares
153Do not refuse unmounting if there are secondary mounts
154.It Cm push_symlinks_in
155Prefix absolute symlinks with the mountpoint
156.El
157.Pp
158.El
159.Pp
160Besides the above mount options, there is a set of pseudo-mount options which
158are supported by the Fuse library. One can list these by passing
161are supported by the Fuse library.
162One can list these by passing
159.Fl h
163.Fl h
160to a Fuse daemon. Most of these options have effect only on the behaviour of
161the daemon (that is, their scope is limited to userspace). However,
162there are some which do require in-kernel support.
164to a Fuse daemon.
165Most of these options only have affect on the behavior of the daemon (that is,
166their scope is limited to userspace).
167However, there are some which do require in-kernel support.
163Currently the options supported by the kernel are:
164.Bl -tag -width indent
165.It Cm direct_io
166Bypass the buffer cache system
167.It Cm kernel_cache
168By default cached buffers of a given file are flushed at each
169.Xr open 2 .
170This option disables this behaviour

--- 14 unchanged lines hidden (view full) ---

185This is the recommended usage when you want basic usage
186(eg, run the daemon at a low privilege level but mount it as root).
187.Sh STRICT ACCESS POLICY
188The strict access policy for Fuse filesystems lets one to use the filesystem
189only if the filesystem daemon has the same credentials (uid, real uid, gid,
190real gid) as the user.
191.Pp
192This is applied for Fuse mounts by default and only root can mount without
168Currently the options supported by the kernel are:
169.Bl -tag -width indent
170.It Cm direct_io
171Bypass the buffer cache system
172.It Cm kernel_cache
173By default cached buffers of a given file are flushed at each
174.Xr open 2 .
175This option disables this behaviour

--- 14 unchanged lines hidden (view full) ---

190This is the recommended usage when you want basic usage
191(eg, run the daemon at a low privilege level but mount it as root).
192.Sh STRICT ACCESS POLICY
193The strict access policy for Fuse filesystems lets one to use the filesystem
194only if the filesystem daemon has the same credentials (uid, real uid, gid,
195real gid) as the user.
196.Pp
197This is applied for Fuse mounts by default and only root can mount without
193the strict access policy (ie. the
198the strict access policy (i.e. the
194.Cm allow_other
195mount option).
196.Pp
197This is to shield users from the daemon
198.Dq spying
199on their I/O activities.
200.Pp
201Users might opt to willingly relax strict access policy (as far they
202are concerned) by doing their own secondary mount (See
203.Sx SHARED MOUNTS ) .
204.Sh SHARED MOUNTS
199.Cm allow_other
200mount option).
201.Pp
202This is to shield users from the daemon
203.Dq spying
204on their I/O activities.
205.Pp
206Users might opt to willingly relax strict access policy (as far they
207are concerned) by doing their own secondary mount (See
208.Sx SHARED MOUNTS ) .
209.Sh SHARED MOUNTS
205A Fuse daemon can be shared (ie. mounted multiple times).
210A Fuse daemon can be shared (i.e. mounted multiple times).
206When doing the first (primary) mount, the spawner and the mounter of the daemon
207must have the same uid, or the mounter should be the superuser.
208.Pp
209After the primary mount is in place, secondary mounts can be done by anyone
210unless this feature is disabled by
211.Cm private .
212The behaviour of a secondary mount is analogous to that of symbolic
213links: they redirect all filesystem operations to the primary mount.
214.Pp
215Doing a secondary mount is like signing an agreement: by this action, the mounter
211When doing the first (primary) mount, the spawner and the mounter of the daemon
212must have the same uid, or the mounter should be the superuser.
213.Pp
214After the primary mount is in place, secondary mounts can be done by anyone
215unless this feature is disabled by
216.Cm private .
217The behaviour of a secondary mount is analogous to that of symbolic
218links: they redirect all filesystem operations to the primary mount.
219.Pp
220Doing a secondary mount is like signing an agreement: by this action, the mounter
216agrees that the Fuse daemon can trace her I/O activities. From then on
217she is not banned from using the filesystem (either via her own mount or
218via the primary mount), regardless whether
221agrees that the Fuse daemon can trace her I/O activities.
222From then on she is not banned from using the filesystem
223(either via her own mount or via the primary mount), regardless whether
219.Cm allow_other
220is used or not.
221.Pp
222The device name of a secondary mount is the device name of the corresponding
223primary mount, followed by a '#' character and the index of the secondary
224mount; e.g.
225.Pa /dev/fuse0#3 .
226.Sh SECURITY
227System administrators might want to use a custom mount policy (ie., one going
228beyond the
229.Va vfs.usermount
224.Cm allow_other
225is used or not.
226.Pp
227The device name of a secondary mount is the device name of the corresponding
228primary mount, followed by a '#' character and the index of the secondary
229mount; e.g.
230.Pa /dev/fuse0#3 .
231.Sh SECURITY
232System administrators might want to use a custom mount policy (ie., one going
233beyond the
234.Va vfs.usermount
230sysctl). The primary tool for such purposes is
235sysctl).
236The primary tool for such purposes is
231.Xr sudo 8 .
232However, given that
233.Nm
234is capable of invoking an arbitrary program, one must be careful when doing this.
235.Nm
237.Xr sudo 8 .
238However, given that
239.Nm
240is capable of invoking an arbitrary program, one must be careful when doing this.
241.Nm
236is designed in a way such that it makes that easy. For this purpose,
237there are options which disable certain risky features (ie.
242is designed in a way such that it makes that easy.
243For this purpose, there are options which disable certain risky features (i.e.
238.Fl S
239and
240.Fl A ) ,
241and command line parsing is done in a flexible way: mixing options and
242non-options is allowed, but processing them stops at the third non-option
243argument (after the first two has been utilized as device and mountpoint).
244The rest of the command line specifies the daemon and its arguments.
245(Alternatively, the daemon, the special and the mount path can be

--- 19 unchanged lines hidden (view full) ---

265This has the same effect as the
266.Fl v
267option.
268.It Ev MOUNT_FUSEFS_IGNORE_UNKNOWN
269If set,
270.Nm
271will ignore uknown mount options.
272.It Ev MOUNT_FUSEFS_CALL_BY_LIB
244.Fl S
245and
246.Fl A ) ,
247and command line parsing is done in a flexible way: mixing options and
248non-options is allowed, but processing them stops at the third non-option
249argument (after the first two has been utilized as device and mountpoint).
250The rest of the command line specifies the daemon and its arguments.
251(Alternatively, the daemon, the special and the mount path can be

--- 19 unchanged lines hidden (view full) ---

271This has the same effect as the
272.Fl v
273option.
274.It Ev MOUNT_FUSEFS_IGNORE_UNKNOWN
275If set,
276.Nm
277will ignore uknown mount options.
278.It Ev MOUNT_FUSEFS_CALL_BY_LIB
273Adjust behaviour to the needs of the FUSE library. Currently it effects
274help output.
279Adjust behavior to the needs of the FUSE library.
280Currently it effects help output.
275.El
276.Pp
277Although the following variables do not have any effect on
278.Nm
279itself, they affect the behaviour of fuse daemons:
280.Bl -tag -width ".Ev FUSE_DEV_NAME"
281.It Ev FUSE_DEV_NAME
281.El
282.Pp
283Although the following variables do not have any effect on
284.Nm
285itself, they affect the behaviour of fuse daemons:
286.Bl -tag -width ".Ev FUSE_DEV_NAME"
287.It Ev FUSE_DEV_NAME
282Device to attach. If not set, the multiplexer path
288Device to attach.
289If not set, the multiplexer path
283.Ar /dev/fuse
284is used.
285.It Ev FUSE_DEV_FD
290.Ar /dev/fuse
291is used.
292.It Ev FUSE_DEV_FD
286File desciptor of an opened Fuse device to use. Overrides
293File desciptor of an opened Fuse device to use.
294Overrides
287.Ev FUSE_DEV_NAME .
288.It Ev FUSE_NO_MOUNT
289If set, the library will not attempt to mount the filesystem, even
290if a mountpoint argument is supplied.
291.El
292.Sh FILES
293.Bl -tag -width /dev/fuse
294.It Pa /dev/fuse
295Fuse device with which the kernel and Fuse daemons can communicate.
296.It Pa /dev/fuse
295.Ev FUSE_DEV_NAME .
296.It Ev FUSE_NO_MOUNT
297If set, the library will not attempt to mount the filesystem, even
298if a mountpoint argument is supplied.
299.El
300.Sh FILES
301.Bl -tag -width /dev/fuse
302.It Pa /dev/fuse
303Fuse device with which the kernel and Fuse daemons can communicate.
304.It Pa /dev/fuse
297The multiplexer path. An
305The multiplexer path.
306An
298.Xr open 2
299performed on it automatically is passed to a free Fuse device by the kernel
300(which might be created just for this puprose).
301.El
302.Sh EXAMPLES
303Mount the example filesystem in the Fuse distribution (from its directory):
304either
305.Pp

--- 20 unchanged lines hidden (view full) ---

326.Dl mount_fusefs -S /dev/fuse /mnt/fuse \(lq$@\(rq
327.Sh SEE ALSO
328.Xr fstat 1 ,
329.Xr mount 8 ,
330.Xr umount 8 ,
331.Xr sudo 8
332.Sh HISTORY
333.Nm
307.Xr open 2
308performed on it automatically is passed to a free Fuse device by the kernel
309(which might be created just for this puprose).
310.El
311.Sh EXAMPLES
312Mount the example filesystem in the Fuse distribution (from its directory):
313either
314.Pp

--- 20 unchanged lines hidden (view full) ---

335.Dl mount_fusefs -S /dev/fuse /mnt/fuse \(lq$@\(rq
336.Sh SEE ALSO
337.Xr fstat 1 ,
338.Xr mount 8 ,
339.Xr umount 8 ,
340.Xr sudo 8
341.Sh HISTORY
342.Nm
334appears as the part of the FreeBSD implementation of the Fuse userspace filesystem
335framework (see http://fuse.sourceforge.net). This user interface is FreeBSD specific.
343appeared in
344.Fx 10.0
345as the part of the
346.Fx
347implementation of the Fuse userspace filesystem
348framework (see http://fuse.sourceforge.net).
336.Sh CAVEATS
349.Sh CAVEATS
337Secondary mounts should be unmounted via their device name. If an attempt is
338made to be unmount them via their filesystem root path, the unmount request
339will be forwarded to the primary mount path.
350This user interface is
351.Fx
352specific.
353Secondary mounts should be unmounted via their device name.
354If an attempt is made to unmount them via their filesystem root path,
355the unmount request will be forwarded to the primary mount path.
340In general, unmounting by device name is less error-prone than by mount path
341(although the latter will also work under normal circumstances).
342.Pp
343If the daemon is specified via the
344.Fl D
345and
346.Fl O
347options, it will be invoked via

--- 16 unchanged lines hidden ---
356In general, unmounting by device name is less error-prone than by mount path
357(although the latter will also work under normal circumstances).
358.Pp
359If the daemon is specified via the
360.Fl D
361and
362.Fl O
363options, it will be invoked via

--- 16 unchanged lines hidden ---