Mount device with specific user rights

To mount a device with certain rights, you can use the -o Option directive while mounting the device. To mount the device you described, run:

 mount -t deviceFileFormat -o umask=filePermissions,gid=ownerGroupID,uid=ownerID /device /mountpoint

For example mounting a VirtualBox shared folder to /var/www with www-data as owner would look like this:

mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/www

If you want to mount the device on startup, you can add the following entry to your /etc/fstab file:

 /device /mountpoint deviceFileFormat umask=filePermissions,gid=ownerGroupID,uid=ownerUserID

Again, with the same example the entry to the /etc/fstab file would look like this:

dev /var/www vboxsf umask=0022,gid=33,uid=33

For filesystems that does not support mounting as a specific user (like ext4) the above will give the error

Unrecognized mount option "uid=33" or missing value

to change the owner of an ext4 mount simply run

chown username /mountpoint

after it has been mounted.


For a file-system like ext3 or ext4, after doing

    chown -R username:group /mountpoint

to change the owner of the currently existing files you can set the group id bit to have new files created with the specific group (doesn't work for the user id under Linux):

    find /mountpoint -type d -exec chmod g+ws {} \;

The Wikipedia entry on setuid and setgid is quite informative, see the section on directories.

Tags:

Linux

Mount