blob: f00e303f9ce2d4cc6b8ab25d0e9629b02496d4e4 [file] [log] [blame]
Miklos Szeredi8cffdb92001-11-09 14:49:18 +00001General Information
2===================
3
4FUSE (Filesystem in USErspace) is a simple interface for userspace
5programs to export a virtual filesystem to the linux kernel. FUSE
6also aims to provide a secure method for non privileged users to
7create and mount their own filesystem implementations.
8
9You can download the source code releases from
10
11 http://sourceforge.net/projects/avf
12
13or alternatively you can use CVS to get the very latest development
Miklos Szeredi0a7077f2001-11-11 18:20:17 +000014version by setting the cvsroot to
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000015
16 :pserver:anonymous@cvs.avf.sourceforge.net:/cvsroot/avf
17
Miklos Szeredi0a7077f2001-11-11 18:20:17 +000018and checking out the 'fuse' module.
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000019
20Installation
21============
22
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000023./configure
24make
25make install
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000026
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000027Also see the file 'INSTALL'
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000028
29How To Use
30==========
31
32FUSE is made up of three main parts:
33
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000034 - A kernel filesystem module
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000035
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000036 - A userspace library
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000037
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000038 - A mount/unmount program
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000039
40
41Here's how to create your very own virtual filesystem in five easy
Miklos Szerediddc862a2002-01-09 13:46:10 +000042steps (after installing FUSE):
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000043
44 1) Edit the file example/fusexmp.c to do whatever you want...
45
46 2) Build the fusexmp program
47
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000048 3) run 'example/fusexmp /mnt/fuse -d'
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000049
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000050 4) ls -al /mnt/fuse
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000051
Miklos Szeredi0a7077f2001-11-11 18:20:17 +000052 5) Be glad
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000053
Miklos Szeredi0a7077f2001-11-11 18:20:17 +000054If it doesn't work out, please ask! Also see the file 'include/fuse.h' for
55detailed documentation of the library interface.
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000056
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000057Security
58========
59
60If you run 'make install', the fusermount program is installed
61set-user-id to root. This is done to allow normal users to mount
62their own filesystem implementations.
63
Miklos Szeredi0a7077f2001-11-11 18:20:17 +000064There must however be some limitations, in order to prevent Bad User from
65doing nasty things. Currently those limitations are:
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000066
67 - The user can only mount on a mountpoint, for which it has write
68 permission
69
70 - The mountpoint is not a sticky directory which isn't owned by the
71 user (like /tmp usually is)
72
Miklos Szeredi0a7077f2001-11-11 18:20:17 +000073 - No other user (including root) can access the contents of the mounted
Miklos Szeredi8cffdb92001-11-09 14:49:18 +000074 filesystem.