How to set default permissions for automounted FAT drives in Ubuntu 9.10?

Updated
Unfortunately there is no built-in means to do this. The "right way", the supported way, is setting an /etc/fstab line with the default mount options you want. This means your defaults must be set per-device, though you can use the partition label or UUID to avoid requiring a specific device path. In particular, this method seems to take place before the PolicyKit desktop authorization.

The Ubuntu forums, Launchpad and Gnome's bugzilla have many posts from users looking for the same functionality you're looking for, on both NTFS and FAT32. Ubuntu 9.10 and 10.04 provide the default automounting via a combination of DeviceKit-Disks, GVFS, and Nautilus.

DeviceKit-disks provides a FilesystemMount interface whose options argument appears to be the proper way to configure your mount options. But GVFS/Nautilus does not appear to provide any means, via the UI or a configuration file, to specify this option when automounting a USB key.

There are a couple of workarounds:

  • This Launchpad bug contains a user-provided patch that alters the DeviceKit-Disks defaults in a custom-built devicekit-disks package.

    On the plus side, this may be the easiest way to set your preferred defaults for all devices. The disadvantage is that you'll need to repatch again when the package is updated.

  • One Ubuntu Forums post proposes a device-specific workaround script:

    #!/bin/bash
    devkit-disks --unmount /dev/disk/by-uuid/0D3594370C618A2A
    devkit-disks --mount-options "dmask=000" --mount /dev/disk/by-uuid/0D3594370C618A2A
    

    This is also sub-optimal, since you'd have to keep this updated with specific devices. But it does avoid the authorization problem that the supported fstab solution can have.


Here's my fstab line for getting my usb stick to mount with permissions suitable for a private ssh key (fmask=177). Trial and error informed me I had to add the 'user' option to get automount to work.

/dev/disk/by-uuid/C2F8-E4F2  /media/TIM_ABELL  vfat  rw,user,nosuid,nodev,dmask=0077,flush,fmask=177

I also had to create the mount point which was previously automatic:

mkdir /media/TIM_ABELL

the disk uuid can be found by plugging in the disk and running

mount
ls -l /dev/disk/by-uuid/

which will allow you to get the mount point -> device -> uuid mapping


I just posted my solution to this on another question https://askubuntu.com/questions/17540/how-do-i-set-executable-permissions-on-a-removable-drive/17550#17550