Set myself as owner of /etc with chown command now getting all kinds of errors
Solution 1
Since some of the files in /etc
might not be owned by root
, if you want to avoid reinstalling, you can do the following:
Boot into a live system and mount the partition containing the
/etc
directory. For example, if your/
partition is/dev/sda1
, you would do this from the live system:sudo mount /dev/sda1 /mnt
Set the ownership of all files to
root
:sudo chown -R root /mnt/etc
At this point all files belong to root. This is probably what you need but some files in
/etc/
might have different ownership. If those files are also not owned by root in the live system, you can use them as a reference to change the permissions on the installed system:shopt -s globstar liveSystem="/etc" cd /mnt/etc for file in **/*; do [ -e "$liveSystem/$file" ] && echo sudo chown --reference "$liveSystem/$file" "$file" done
If you have also changed the permissions, do this instead:
shopt -s globstar liveSystem="/etc" cd /mnt/etc for file in **/*; do [ -e "$liveSystem/$file" ] && echo sudo chown --reference "$liveSystem/$file" "$file" && echo sudo chmod --reference "$liveSystem/$file" "$file" done
That will just print what command would be run. Once you've seen what that does and are satisfied that it is correct, remove the
echo
to make it actually run the commands.Now that will iterate over all files, including those whose ownership is
root
in both directories, but that doesn't matter. You could write a more sophisticated approach but it's not worth it since this will take seconds.Reboot your machine: everything should be back to normal.
IMPORTANT: this will not help if you have installed something that isn't on the live system and whose files in /etc
don't belong to root
. If this is the case, you'll either need to find what you installed and reinstall it or you might need to reinstall the system.
Solution 2
Boot into recovery and issue the following commands:
mount -o remount,rw -n /
chown -R root: /etc
Related videos on Youtube
Raf
Updated on September 18, 2022Comments
-
Raf over 1 year
I needed to edit a
.config
file (which I know for a fact is not creating these problems, just to clear that up) and it wouldn't let me save it, so I took ownership of/etc
and all contents with the commandchown -hR username /etc
and that let me edit the.config
file but now whenever I try to install any packages or use any sudo commands, it doesn't work (I've checked for errors in the sudo file in sudoers.d and there was nothing wrong with that).So how do I return it to the previous owner?
-
edwin almost 11 yearsTry running
sudo chown -R root:root /etc
. It works... now you know you shouldn't play like this withroot
own files! :) -
Raf almost 11 yearsi did that, now whenever i run a sudo command it says 'sudo: /etc/sudoers.d is world writable'
-
l0b0 about 7 years@Raf If it says
/etc/sudoers.d
is world writable after re-chowning everything back to root you must have done something else, likechmod 666
. That is an entirely different kettle of fish. -
Amias about 7 yearsunless you have some long winded configurations setup for this system i would reinstall it , it will be safer and more reliable than having unexpected permissions in /etc IMHO
-
Raf about 7 yearsThis was years ago, long forgotten now! I ended up reinstalling the system I think. Cheers anyway lads.
-
Elder Geek over 6 yearsCan anyone explain to me why this is a candidate for reopening? Thanks.
-
WinEunuuchs2Unix almost 4 years@ElderGeek I see this question as a unique question involving
/etc
only which is arguably less complex than/
. Additionally this question has an answer using--reference
which the duplicate has no answers for. -
WinEunuuchs2Unix almost 4 yearsReopen Voters: See above comment to @ElderGeek
-
Elder Geek almost 4 years@WinEunuuchs2Unix Thank you for sharing that perspective. Your point is taken. On the flip side, do you think that reopening this question will result in answers better than what it already has? It's certainly not in danger of being deleted and the signpost to the more generic answer regarding system directories doesn't do any harm and may actually help. Am I missing a finer point here?
-
WinEunuuchs2Unix almost 4 years@ElderGeek This was a long time ago and I can't remember all my arguments at that time. My system was fixed writing a script based on Terdon's answer so I'm all happy. I've moved on to bigger things :)
-
-
terdon almost 4 years@WinEunuuchs2Unix
chown
will also set the group. -
WinEunuuchs2Unix almost 4 yearsYes I read that myself later. I'll be trying it out myself later. I had a software development "mishap" yesterday where
/tmp/$USER/scp.999999
directory files were supposed to be changed but it ended up being/
somehow :( -
WinEunuuchs2Unix almost 4 yearsIt was a wild and crazy 24 hours but I got my system working again (although
screenfetch
generates an error withxargs
andecho
). I referenced your answer and gave you credit to the duplicate candidate this Q&A is closed against: askubuntu.com/questions/43621/…