Solving permission problems when using external EXT4 hard disk with multiple linux installs

I have an external hard drive and since I only use Ubuntu and Fedora I decide to format my hard drive to ext4 everything is fine.

The problem is when I mount the drive I need to change the permission so I can read and write.

What kind of permission should I use? adm my user name?

Asked By: Javier Gonzalez

||

Lame though it may be of me, I’m going to have to answer the question with another question. If all we’re talking about is for one OS, then it would be either

sudo chown -R (user name) /dev/(device name)

(ubuntu)

or just

chown -R (user name) /dev/(device name)

fedora – no sudo, just run the command from root.

The noodle scratcher part, and the part I don’t have any good answers for, is how to make it so you don’t have to manually retype when you go back and forth between distros. I’d almost be tempted to add the line to my ~/.bashrc, but there’s probably a better way I don’t know or haven’t thought of yet.

Answered By: user2367

In /etc/fstab you could put uid=1000 (in Ubuntu — it’s 500 in Fedora) for the drive to be owned by your user (assuming you’re the first user, yada yada yada… if not, your user’s uid from id) and umask=000 if you wanted all users to have access (or 077 for just the one specified by uid= — it’s a mask, so you put the opposite of what you’d chmod as)

For more info on using /etc/fstab: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html

Answered By: maco

The simplest solution is to make sure your Ubuntu & Fedora user accounts have the same user id (UID).

I think Fedora starts user accounts at 500 by default, while Debian & Ubuntu start them at 1000, so it’s very likely that in one OS you are user number 500 and in the other you are user number 1000. The file system uses this UID number to keep track of permissions, so if you make sure they have the same UID, they will be considered the same user, and no permission issues will happen.

I think the best you can do is make them both UID = 1000, so change the UID in the Fedora system, then make sure all files on the external disk and in the user’s $HOME in the Fedora install are owned by UID 1000. After that you should have no permission problems anymore.

Answered By: JanC

You could just try to use exfat or ntfs. For me it works this way. But i don’t now if it works with every file permission. I think not.

Answered By: d3rdon

Unfortunately Linux kernel enforces POSIX permission on ext2/ext3/ext4 FS.

You may workaround POSIX permission with shared group. I ask corresponding question: https://unix.stackexchange.com/questions/273144/predefined-group-ids-across-linux-distros/ but after all I made own research.

I discover that sys group share id 3 on Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.

With such discover in mind one solution may look like:

$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

and flavor of this (whenever you on Linux/FreeBSD/MacOSX/Solaris):

$ sudo adduser user sys

See also:

Answered By: gavenkoa

This is a slight variation of @gavenkoa’s approach of using shared groups, and does not involve modification of the mounted drive.

Check what group id (GID) is used in the mounted drive.

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

Let us say you see something similar to the following:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

This means 12000 is the current GID of the data in the drive, and the data can be read, and executed (cannot be written, though) by any other user of the group. Create a new group (for eg. driveusers) and add your current user to the new group:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive
Answered By: jadelord

I found this other solutions:

https://unix.stackexchange.com/questions/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

https://unix.stackexchange.com/a/273705

With this:

sudo chgrp -R sys /mnt/data/dir
sudo chmod -R g+s /mnt/data/dir
sudo setfacl -R -m g:sys:rwx /mnt/data/dir
sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

and flavor of this:

sudo adduser user sys  

your user be able to read/write any file on /dir.

@jadelord @ gavenkoa do you please think there’s any improvement that could be done nowadays on your suggested solutions for Ubuntu (or Fedora) users? Thanks

Answered By: horizonbrave

Run "disks" application installed by default on Linux and then click on the gear and choose "take ownership". Check "recursive mode" box and hit OK.

enter image description here

Answered By: living being