Ubuntu – What if I accidentally run command “chmod -R” on system directories (/, /etc, …)

chmodpermissionssudo

I accidently ran

sudo chmod 755 -R /

instead of

sudo chmod 755 -R ./

I stopped it after few seconds, but now there is some problems such as

sudo: must be setuid root

How can I revert permissions back?

Best Answer

  • In short: you can't, reinstall your system.

    I mean, Posix permissions are used and relied on heavily; there's a multitude of places in the filesystem where wrong permissions would break the OS (SUID flags) or even worse, make it exposed security-wise (/etc/ssh/ssh_host_rsa_key) while it appears to be working OK.

    Hence, such a recovery is hard to do properly. Miss one thing — and you screw it up. You already screwed up your sudo chmod command (if that's your friend rather than you, she might as well learn some Linux lesson, too) — and that's a very simple of a command. Proper recovery would demand way more commands and way more vigilance. Even if you use someone's script.

    So trust me, just reinstall. It's a safe bet and guaranteed to keep you out of trouble.


    Finally, some tips relevant here.

    First: reinstalls will be less painful if you setup your /home on a separate partition next time. Actually, they will be a breeze.

    Second: consider doing crazy Linux science in a virtual machine like the VirtualBox, and do your snapshots.

    Third: chmod -R . works. A dot by itself . is valid directory name. There's no real need to append that slash. You could've avoided the catastrophic risk of skipping the dot entrirely;
    mere chmod: missing operand after ‘755’ VS a ruined system.

  • Related Question