26

When I mount an external usb drive on linux (CentOs4), the permissions are by default set to read-only. Since there are multiple users on the computer who need to use the external drive, I want everybody to have rw permission for the entire drive. I also want them to be able to mount the drive if the computer has accidentially been shut down. They can use sudo mount to mount the drive, but this will only give them read permission, and I obviously don't want to allow sudo chmod.

Is there a default setting that I can change so that every new external usb disk automatically gets rw permissions?

3 Answers 3

23

To enable everyone rw access, the key is umask=0 option to mount command.

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

umask=0 is enough, uid and gid just for sake of clarity, so you don't see more 'root' owners than necessarily.


@Tom's answer (writing /etc/fstab entry) will allow you to skip sudo and if you write umask=0 as additional option there, you'll get best of both worlds:

Having this in /etc/fstab:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

allows you to just run

mount /dev/something

and everyone has access to all files.


Here's technical note, if you wish to know details:

As man mount says, 'umask=0' will ensure that no additional rules apply to files access mode. For FAT filesystems (which are most widely used on USB disks), there's no access mode stored. But your current process has some umask value set, you can see it if you run just umask in terminal. mount uses that as default and removes access mode of your umask value from all files on mounted disk. Most widely used umask values are (octal) 022 - no group and other write, and 027 - no group write, no any other access.

3
  • 1
    I get an error with 'bad option' if I add umask=0 0 0 as an entry in fstab. Does the umask-entry need to be the last entry? What does the managed=0 0 0 entry do that is currently last?
    – Jonas
    Aug 19, 2010 at 14:03
  • 2
    FWIW, the umask option is a VFAT-only option, i.e. the solution helps as long as the USB memory is uses the VFAT filesystem (which did not happen to be my case). Mar 17, 2012 at 18:12
  • 2
    Thank you. But I had to alter it in order to make it work: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewhere It only works without setting the gid-parameter.
    – Nippey
    Oct 19, 2012 at 18:54
3

Add an entry to /etc/fstab. Here is an entry that I added just a few hours ago for my Seagate USB drive:

UUID=4ACC734ECC733375 /media/Linux ext3 errors=remount-ro,defaults,users,noatime,nodiratime 0 0

The key here is the "users" entry that allows users to mount and unmount the drive.

Edit: this works for specific drives - I don't know if it can be enabled for all drives with one entry.

1
  • If a user mounts the drive, would all other users get rw permission as well?
    – Jonas
    Aug 15, 2010 at 4:03
2

Type mount. This will give the current place it is at. Here is my output.

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

The last is my usb drive automouunted by Linux Mint.

Now type

sudo umount /dev/sdf1

this will unmount drive

now remount correctly.

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .