Mounting ext4 drive with specified user permission

15

3

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.

green69

Posted 2012-12-15T18:34:50.627

Reputation: 251

1

There's a similar question on Ask Ubuntu.

– Cristian Ciupitu – 2014-08-01T12:32:16.953

Who will be mounting the disk? Should the user himself be able to mount it? – holgero – 2012-12-15T21:42:45.280

I think that if I use the words "user,users" in the mounting options of fstab, the user would be able to mount the disk. – green69 – 2012-12-16T11:41:41.617

Answers

9

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

kynan

Posted 2012-12-15T18:34:50.627

Reputation: 2 646

1

Just be careful as BindFS imply some overhead when accessing file. See here for details.

– PomCompot – 2014-12-08T08:45:36.040

6

Only FAT, vFAT, exFAT support the uid, gid, umask options. You can check this by reading the list of the possible options in the mount man page, section "Mount options for fat".

However, you can change ownership of the existing directory system by using chown on the filesystem's mount point, like:

# mount /dev/sda* /mnt/your/mountpoint/
# chown user:group 741 /mnt/your/mountpoint/

Gergely Lukacsy

Posted 2012-12-15T18:34:50.627

Reputation: 195

2That changes the permissions on the file system permanently. Any user/group differences will be wiped out, and any SUID/SGID bits will be reset. – vonbrand – 2014-01-30T16:10:56.503

0

When mounting an EXT filesystem, the permissions from the perspective of host filesystem appears to be what ever the guest filesystem already has.

Derek Gorczynski

Posted 2012-12-15T18:34:50.627

Reputation: 1

0

I've just encountered the same problem. What I've done is mounted the filesystem first, then changed all the permissions and owner:group on the mount point, subdirectories, and files. Then when I umount the filesystem and remount it these changes appear to be persistent.

15:24@boromir:/media$ cat /etc/fstab
UUID=95446ed0-b6a6-42cd-8c37-ea81a0836e98 /media/cavalry1  auto   defaults,nofail       0 0

15:26@boromir:/media$ sudo umount cavalry1/
15:27@boromir:/media$ l
total 28
drwxrwxrwx 2 boincuser boincuser 4096 2012-12-17 15:00 cavalry1/

15:27@boromir:/media$ sudo mount -a
15:28@boromir:/media$ l
total 28
drwxr-xr-x 3 boincuser boincuser 4096 2012-12-17 11:05 cavalry1/

Here you can see the permissions and owner aren't reset upon remounting the filesystem.

josh

Posted 2012-12-15T18:34:50.627

Reputation: 101