Re: utimes() with vfat is problematic

From: Bodo Eggert
Date: Wed Jul 11 2007 - 07:49:35 EST


Jan Engelhardt <jengelh@xxxxxxxxxxxxxxx> wrote:

> vfat does not know about ownership, hence the files are always owned by the
> vfat mounter (or whatever the uid= option specified). Which brings
> a problem to userspace programs trying to utime() but which do not
> run as the same user as the vfat mounter, because:
>
>
> fs/attr.c:53
> ret = -EPERM;
> [...]
>
> /* Check for setting the inode time. */
> if (ia_valid & (ATTR_MTIME_SET | ATTR_ATIME_SET)) {
> if (current->fsuid != inode->i_uid && !capable(CAP_FOWNER))
> goto error;
> }
>
>
> To trigger the problem:
> # mount /somevfat -o umask=0,uid=root
> $ touch -d "2005-05-05" /somevfat/myfile
>
> I am not sure how this could be dealt with besides passing -o quiet to
> mount.vfat. Any ideas?

Would it be possible to allow any user to modify the fs by adding
"&& current->fsuid != -1"? I think it's commonly the desired behaviour.
Off cause the default behaviour should stay the same.
--
Those who hesitate under fire usually do not end up KIA or WIA.

Friß, Spammer: pof@xxxxxxxxxxxxxxxxxxxxx jhojzbk@xxxxxxxxxxxxxxxxxxxx
ysoMi@xxxxxxxxxxxxxxxxxxxxxxxxxx a-r@xxxxxxxxxxxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/