From b14a2c6e34b197870433386fb809d34b58b30fc0 Mon Sep 17 00:00:00 2001 From: Brian Swetland Date: Thu, 12 Aug 2010 18:21:12 -0700 Subject: [PATCH] fix up permissions Change-Id: I93c828ebc755ad2a2055066c8af65dfde7dc7b2e --- sdcard/sdcard.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/sdcard/sdcard.c b/sdcard/sdcard.c index 5d196045..a534dae8 100644 --- a/sdcard/sdcard.c +++ b/sdcard/sdcard.c @@ -25,6 +25,8 @@ #include #include +#include + #include "fuse.h" /* README @@ -144,10 +146,20 @@ void attr_from_stat(struct fuse_attr *attr, struct stat *s) /* TODO: time */ attr->mode = s->st_mode; attr->nlink = s->st_nlink; - /* TODO: uid/gid */ - attr->uid = 1000; - attr->gid = 1000; + /* force permissions to something reasonable: + * world readable + * writable by the sdcard group + */ + if (attr->mode & 0100) { + attr->mode = (attr->mode & (~0777)) | 0775; + } else { + attr->mode = (attr->mode & (~0777)) | 0664; + } + + /* all files owned by root.sdcard */ + attr->uid = 0; + attr->gid = AID_SDCARD_RW; } int node_get_attr(struct node *node, struct fuse_attr *attr)