diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | README | 23 | ||||
-rw-r--r-- | kernel/dir.c | 5 |
3 files changed, 19 insertions, 14 deletions
@@ -1,3 +1,8 @@ +2004-07-26 Miklos Szeredi <miklos@szeredi.hu> + + * Check permissions in setattr if 'default_permissions' flag is + set. Bug spotted by Damjan Lango + 2004-07-24 Miklos Szeredi <miklos@szeredi.hu> * 'large_read' mount option removed for 2.6 kernels, since the @@ -20,22 +20,22 @@ and checking out the 'fuse' module. Installation ============ -See the file 'INSTALL' +./configure +make +make install -IMPORTANT NOTE: If you run a system with untrusted users, installing -this program is not recommended, as it could be used to breach -security (see the 'Security' section for explanation). +Also see the file 'INSTALL' How To Use ========== FUSE is made up of three main parts: - - A kernel filesystem module (kernel/fuse.o) + - A kernel filesystem module - - A userspace library (lib/libfuse.a) + - A userspace library - - A mount/unmount program (util/fusermount) + - A mount/unmount program Here's how to create your very own virtual filesystem in five easy @@ -45,20 +45,15 @@ steps (after installing FUSE): 2) Build the fusexmp program - 3) run 'example/fusexmp /mnt/whatever -d' + 3) run 'example/fusexmp /mnt/fuse -d' - 4) ls -al /mnt/whatever + 4) ls -al /mnt/fuse 5) Be glad If it doesn't work out, please ask! Also see the file 'include/fuse.h' for detailed documentation of the library interface. -The fusermount program accepts a couple of additional options (see -'fusermount -h'). You can add these options after a '--' like this: - - example/fusexmp /mnt/whatever -d -- -l - Security ======== diff --git a/kernel/dir.c b/kernel/dir.c index 7a8567c..87dec6a 100644 --- a/kernel/dir.c +++ b/kernel/dir.c @@ -762,6 +762,11 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr) int err; int is_truncate = 0; + if (fc->flags & FUSE_DEFAULT_PERMISSIONS) { + err = inode_change_ok(inode, attr); + if (err) + return err; + } if (attr->ia_valid & ATTR_SIZE) { unsigned long limit; |