Afuse 0.1 By Jacob Bower http://afuse.sourceforge.net/ 0. Conents ---------- 1. Abstract 2. Example Usage 3. Notes on Afuse's Operation 1. Abstract ----------- Afuse is an automounting file system implemented in user-space using FUSE. Afuse currently implements the most basic functionality that can be expected by an automounter; that is it manages a directory of virtual directories. If one of these virtual directories is accessed and is not already automounted, afuse will attempt to mount a filesystem onto that directory. If the mount succeeds the requested access proceeds as normal, otherwise it will fail with an error. See the example below for a specific usage scenario. The advantage of using afuse over traditional automounters is that afuse is designed to run entirely in user-space by individual users. This way an automounting action can take advantage of the invoking users environment, for example allowing access to an ssh-agent for password-less sshfs mounts, or allowing access to a graphical environment to get user input to complete a mount (i.e. popping up a window asking for a password). As this is a very early release of afuse operation is not yet optimal and many features are missing. If you are interested in plans for afuse or would like to contribute please see the HACKING file. The latest version of afuse can be found at http://afuse.sourceforge.net/ Afuse is distributed under the GPL license, details of which can be found in the COPYING file. Particularly, please note that while afuse is intended to be useful it is provided with ABSOLUTELY NO WARRANTY. 2. Example Usage ---------------- Example invocation using sshfs: afuse -o mount_template="sshfs %r:/ %m" \ -o unmount_template="fusermount -u -z %m" \ mountpoint/ Now try 'ls mountpoint/user@host/'. To unmount use: fusermount -u -z mountpoint/ All sub mounts should be automatically unmounted. For this example to work, the sshfs invocation must not require user interactivity (i.e. asking for a password). So you probably want to be using something like ssh-agent. Alternatively, if want interactivity, add -f to the afuse invocation. 3. Notes on Afuse's Operation ----------------------------- One of the most important things to note about afuse's operation is that automounted filesystems accessed through afuse are actually accessed by proxy. Actual mounts are created in an instance specific directory in /tmp. _ALL_ accesses to automounted filesystems apparently managed by afuse go through afuse and are proxied onto the real filesystem mounts as appropriate. While this shouldn't cause any operational problems, it does mean that operations on afuse automunted filesystems have considerable overhead. It can also mean that if afuse is not shutdown cleanly (via an unmount of the afuse filesystem) a stale directory can be left in /tmp of the form afuse-XXXXXX (where the X's are random characters). Hopefuly these limitations will be removed in later revisions of afuse.