Tidying up for release 0.2.
[SourceForge/afuse.git] / README
1 Afuse 0.2
2 Jacob Bower <jacob.bower@ic.ac.uk>
3 http://afuse.sourceforge.net/
4
5
6 0. Contents
7 -----------
8 1. Abstract
9 2. Example Usage
10 3. Notes on Afuse's Operation
11
12
13 1. Abstract
14 -----------
15 Afuse is an automounting file system implemented in user-space using
16 FUSE. Afuse currently implements the most basic functionality that can
17 be expected by an automounter; that is it manages a directory of virtual
18 directories. If one of these virtual directories is accessed and is not
19 already automounted, afuse will attempt to mount a filesystem onto that
20 directory. If the mount succeeds the requested access proceeds as normal,
21 otherwise it will fail with an error. See the example below for a specific
22 usage scenario.
23
24 The advantage of using afuse over traditional automounters is that afuse
25 is designed to run entirely in user-space by individual users. This way an
26 automounting action can take advantage of the invoking users environment,
27 for example allowing access to an ssh-agent for password-less sshfs
28 mounts, or allowing access to a graphical environment to get user input
29 to complete a mount (i.e. popping up a window asking for a password).
30
31 As this is a very early release of afuse operation is not yet optimal
32 and many features are missing. If you are interested in plans for
33 afuse or would like to contribute please see the HACKING file.
34
35 The latest version of afuse can be found at http://afuse.sourceforge.net/
36
37 Afuse is distributed under the GPL license, details of which can be
38 found in the COPYING file. Particularly, please note that while afuse
39 is intended to be useful it is provided with ABSOLUTELY NO WARRANTY.
40
41
42 2. Example Usage
43 ----------------
44 Example invocation using sshfs:
45
46         afuse -o mount_template="sshfs %r:/ %m" \
47               -o unmount_template="fusermount -u -z %m" \
48                  mountpoint/
49
50 Now try 'ls mountpoint/user@host/'.
51
52 To unmount use:
53
54         fusermount -u -z mountpoint/
55
56 All sub mounts should be automatically unmounted.
57
58 For this example to work, the sshfs invocation must not require user
59 interactivity (i.e.  asking for a password). So you probably want to be
60 using something like ssh-agent.
61
62 Alternatively, if want interactivity, add -f to the afuse invocation.
63
64
65 3. Notes on Afuse's Operation
66 -----------------------------
67 One of the most important things to note about afuse's operation is that
68 automounted filesystems accessed through afuse are actually accessed
69 by proxy.  Actual mounts are created in an instance specific  directory
70 in /tmp. _ALL_ accesses to automounted filesystems apparently managed by
71 afuse go through afuse and are proxied onto the real filesystem mounts
72 as appropriate.
73
74 While this shouldn't cause any operational problems, it does mean that
75 operations on afuse automunted filesystems have considerable overhead.
76 It can also mean that if afuse is not shutdown cleanly (via an unmount
77 of the afuse filesystem) a stale directory can be left in /tmp of the
78 form afuse-XXXXXX (where the X's are random characters).
79
80 Hopefully these limitations will be removed in later revisions of afuse.