Linux – Mounting ext4 drive with specified user permission

fstablinuxmountpermissions

I want to mount a supplementary ext4 data disk drive with specified rwx permission for a certain user. The mount point is inside the home of such a user and it's owned by the user. I added the new data disk in /etc/fstab in the standard way:

/dev/hda  /home/user/new_disk  ext4  defaults,errors=remount-ro  0 1

Anyway when the new partition is mounted, the ownership of the mount point change from user.group to root.root and so the user has no write permissions there. I can change manually the ownership of the mount point so the user can write there, but the problem reappear at each rebooting.
I've even tried to add the disk in the fstab in the following way:

/dev/hda  /home/user/new_disk  ext4  umask=0077,uid=1000,gid=1000,errors=remount-ro  0 1

But in this case the system gives me an error because the volume has ext4 format.
I want to either:

  • mount the ext4 drive already with specified user permission, or
  • change the ownership of the mount point at each startup after the disk has been mounted.

Best Answer

Use bindfs:

A FUSE filesystem for mirroring the contents of a directory to another directory. Additionally, one can change the permissions of files in the mirrored directory.

Mount the ext4 filesystem as /media/disk:

sudo mount -o user /dev/sdXN /media/disk

Bind the mounted filesystem with permissions for the current user (or any other user/group):

sudo bindfs -u $(id -u) -g $(id -g) /media/disk /home/user/new_disk
Related Question