How do I change permissions on a FAT32 formatted drive?

vfat does not support Linux permissions. You can set permissions manually when you mount the device.

Unmount the flash drive from nautilus, but do not remove it.

sudo mkdir /media/flash
sudo mount /dev/sdb1 /media/flash -o dmask=000,fmask=111

You can possibly work around the issue if you use NTFS on the flash drive, and in that case mount it with the permissions option.

sudo mkdir /media/flash
sudo mount /dev/sdb1 /media/flash -o permissions    

With the permissions option chown and chmod should work.

See man mount

Other options might be to use ext2 on the flash drive (smaller overhead) and the fs-driver on windows

http://www.fs-driver.org/


FAT32 does not support Linux-like permissions.

The only possibility which comes to my mind is, to change the settings in /etc/fstab for the whole drive. On mounting, these permissions are mapped to the whole drive, but you can't distinguish between executable files, read and write permissions from file to file.

And since you need to execute a directory to enter it, you need global execute permissions. And therefore global read permissions too.

A typical entry would look like this:

/dev/pny    /media/pny  vfat    defaults,users,exec,uid=1000,gid=46 0   0

uid would be your UID (check using the command id when logged in), gid=46 is plugdev on my system, used for the hotplug daemon.