Hello Linux Helpdesk. ;)
I use Fedora (currently 40), and have done for a while.
I always LUKS+Ext4 encrypt my local drive and decided to do the same to my external hard drive.
Last week I reinstalled Fedora 40 from a Bootable USB, but when I tried to access my files om my external drive it now gives me the error
You do not have permission to view the content of “Files”.
I’ve read online it’s due to me no longer being the “Owner” of the drive I was in my previous install of Fedora and now I’m a different user and apparently no users a part from Owner have any permissions on an EXT4+LUKS drive.
Is there any way to give myself permission to see the content again or did I bonk my backup? As a note, I DO have the correct Luks password, it shows me the name of the encrypted disk after decrypting, which is “Files”
Thank you in advance.
Edit: Thank you everybody, thanks to you I’ve been able to rescue my files. Y’all deserve a great day!
Use
chown
to change ownership orchmod
to change rights. The -R option makes them also change the permissions for all files and directories inside of the directory.sudo chown -R <username>:<usergroup> /pathto/Files
Another user suggests
youruser:youruser
and not usergroup, if usergroup would I just use the Owner group or?Thank you for your answer.
I believe you can just do
youruser:
and chmod automatically uses the correct group. The other user is also technically correct as the usergroup is called the same as the user so both commands are the same.Typically the user group is identical to the username but not always. For example a name containing uppercase letters may be transformed to be all lowercase for the user but contain both cases in the group.
Thus you should get the user group in scripting separate from $USER
Those are placeholders. Your user has a name and is in a group. No idea what that group is called like. For root it is
root:root
youruser:youruser
just means the user’s group. For instance, on my fedora 40 install, my user (bippy, just a silly name), is the username for my user, but also the name of the group that my user belongs to.So when I do a
chown
, I typically dochown -R
bippy:bippypath/to/directory
If you wanted to give permissions to a different group on your system, but also to your main user, you could do a
chown -R bippy:wheel /path/to/directory
(wheel
is an example group name, which is similar tosudoers
)Thank you, worked like a charm.
Super!
I would advise against that. Udisks2 should mount writable always.
this is simple file permissions, nothing to do with LUKS. The solution should be to access the files as root. You could use the command “Sudo chmod a+rwx /path/to/drive” to set completely accessible file permissions, which is not a best practice typically, but would be fine here since the drive’s encrypted.
root can always access them. it’s exactly for solving these kind of maintainance and repair tasks.
btw don’t forget to make backups. repairing things can go sideways.
sudo chown -R youruser:youruser /path/to/mountpoint
Will make all the files in the path owned by you. Be careful if you have more complex permissions on there they will be lost.
Will make all the files in the path owned by you. Be careful if you have more complex permissions on there they will be lost.
This is where ACL permissions would help. He could give his new id ACL permissions to the files and that wouldn’t mess with the current permissions.
From the root/beginning subdir: sudo setfacl -R -m u:{replace with your new id}:rwx .
Will try tomorrow when I get up.
Would /dev/sda suffice as mounting point or?
Haven’t set any permissions outside standard given ones by usage.
Thanks for answering.
/dev/sda is the whole raw disk - you typically don’t want to directly interact with /dev/sda, unless you are partitioning or overwriting it. There are a few layers between that device and the files:
- raw disk - /dev/sda
- disk partition - /dev/sda1
- luks container - when unlocked, mapped to /dev/mapper/{name}
- ext4 filesystem inside the luks container, mounted somewhere like /mnt, /media, etc
You’ll need to find where that ext4 filesystem is mounted, and run the chown command on that. You can run
lsblk
and see a tree of the above hierarchy, with the ext4 filesystem’s mountpount shown in the right-hand column.You need the mount point not the device. Probably something like
/media/Files
Your files are not lost. You will be able to access them with your local root user, either through the command line or a GUI file explorer that supports actions as root.
Thank you.
You could try using bindfs to spoof the original user id and then chown the whole drive after successfull mounting (i’m a noob, just my understanding of the issue, don’t know if that’s really possible)
Will look into this if @[email protected] 's suggestion doesn’t work.
Use
udisksctl mount
and not the oldmount
command. This should work. No need to change ownership.