• Christian Brauner's avatar
    fat: handle idmapped mounts · 4b789936
    Christian Brauner authored
    Let fat handle idmapped mounts. This allows to have the same fat mount
    appear in multiple locations with different id mappings. This allows to
    expose a vfat formatted USB stick to multiple user with different ids on
    the host or in user namespaces allowing for dac permissions:
    
    mount -o uid=1000,gid=1000 /dev/sdb /mnt
    
    u1001@f2-vm:/lower1$ ls -ln /mnt/
    total 4
    -rwxr-xr-x 1 1000 1000 4 Oct 28 03:44 aaa
    -rwxr-xr-x 1 1000 1000 0 Oct 28 01:09 bbb
    -rwxr-xr-x 1 1000 1000 0 Oct 28 01:10 ccc
    -rwxr-xr-x 1 1000 1000 0 Oct 28 03:46 ddd
    -rwxr-xr-x 1 1000 1000 0 Oct 28 04:01 eee
    
    mount-idmapped --map-mount b:1000:1001:1
    
    u1001@f2-vm:/lower1$ ls -ln /lower1/
    total 4
    -rwxr-xr-x 1 1001 1001 4 Oct 28 03:44 aaa
    -rwxr-xr-x 1 1001 1001 0 Oct 28 01:09 bbb
    -rwxr-xr-x 1 1001 1001 0 Oct 28 01:10 ccc
    -rwxr-xr-x 1 1001 1001 0 Oct 28 03:46 ddd
    -rwxr-xr-x 1 1001 1001 0 Oct 28 04:01 eee
    
    u1001@f2-vm:/lower1$ touch /lower1/fff
    
    u1001@f2-vm:/lower1$ ls -ln /lower1/fff
    -rwxr-xr-x 1 1001 1001 0 Oct 28 04:03 /lower1/fff
    
    u1001@f2-vm:/lower1$ ls -ln /mnt/fff
    -rwxr-xr-x 1 1000 1000 0 Oct 28 04:03 /mnt/fff
    
    Link: https://lore.kernel.org/r/20210121131959.646623-38-christian.brauner@ubuntu.com
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: linux-fsdevel@vger.kernel.org
    Signed-off-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
    4b789936
namei_vfat.c 25.5 KB