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 command chown -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?

  • 1
    @Raf If it says /etc/sudoers.d is world writable after re-chowning everything back to root you must have done something else, like chmod 666. That is an entirely different kettle of fish.
    – l0b0
    Feb 20, 2017 at 18:34
  • 2
    unless 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
    – Amias
    Feb 21, 2017 at 11:14
  • 3
    Can anyone explain to me why this is a candidate for reopening? Thanks.
    – Elder Geek
    Aug 24, 2017 at 23:59
  • 2
    @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. Jun 28, 2020 at 22:07
  • 1
    Reopen Voters: See above comment to @ElderGeek Jun 28, 2020 at 22:08

2 Answers 2


Since some of the files in /etc might not be owned by root, if you want to avoid reinstalling, you can do the following:

  1. 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
  2. Set the ownership of all files to root:

    sudo chown -R root /mnt/etc
  3. 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
    cd /mnt/etc
    for file in **/*; do 
        [ -e "$liveSystem/$file" ] &&
            echo sudo chown --reference "$liveSystem/$file" "$file"

    If you have also changed the permissions, do this instead:

    shopt -s globstar
    cd /mnt/etc
    for file in **/*; do 
        [ -e "$liveSystem/$file" ] &&
            echo sudo chown --reference "$liveSystem/$file" "$file" &&
            echo sudo chmod --reference "$liveSystem/$file" "$file"

    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.

  4. 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.

  • @WinEunuuchs2Unix chown will also set the group.
    – terdon
    Jun 29, 2020 at 8:13
  • Yes 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 :( Jun 29, 2020 at 14:07
  • It was a wild and crazy 24 hours but I got my system working again (although screenfetch generates an error with xargs and echo). I referenced your answer and gave you credit to the duplicate candidate this Q&A is closed against: askubuntu.com/questions/43621/… Jul 1, 2020 at 1:50

Boot into recovery and issue the following commands:

mount -o remount,rw -n /
chown -R root: /etc

Not the answer you're looking for? Browse other questions tagged or ask your own question.