35

How can I fix the following error with sudo?

/etc$ sudo
sudo: /etc/sudoers.d is world writable
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user
            name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user
            name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g
            groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid]
            [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g
            groupname|#gid] [-p prompt] [-u user name|#uid] file ...
demure
  • 2,282
  • 1
  • 16
  • 19
kismat
  • 351
  • 1
  • 3
  • 3
  • looks like changing permissions on /etc is a bad thing http://serverfault.com/questions/364677/why-is-chmod-r-777-destructive http://serverfault.com/questions/221447/how-to-repair-restore-ubuntu-10-04-after-sudo-chmod-777 – zadubz Dec 29 '14 at 00:00
  • try pkexec chmod 555 /etc/sudoers –  Jul 29 '16 at 10:52
  • 1
    If "pkexec chmod 555 /etc/sudoers.d" does not work for you due to pkexec having a permission promblem, get the PID of the shell you are running pkexec in suing "echo $$" then log in another window and do a " pkttyagent --process XXX" with the XXX replaced with the PID of the other shell. Once that is running, retry the pkexec in other shell – Cullen Fluffy Jennings Feb 29 '20 at 23:59
  • Thank you, @CullenFluffyJennings. That worked for me. Keep safe... – Jonathan Apr 19 '21 at 13:17

3 Answers3

48

Run pkexec chmod 0755 /etc/sudoers.d

pkexec will use a different method of using root permissions, bypassing the issue.
And the chmod will fix the permissions.

kos
  • 35,891
demure
  • 2,282
  • 1
  • 16
  • 19
40

Run this 2 commands with (555) permissions:

pkexec chmod 555 /etc/sudoers
pkexec chmod 555 /etc/sudoers.d/README
edwinksl
  • 23,789
12

Did you try going into recovery mode and switching the permissions back to 775 for sudoers? I tried it and it worked.

1) Get into Ubuntu Recovery

2) Do mount -rw -o remount /

3) Then chmod 775 -R /etc/sudoers and chmod 775 -R /etc/sudoers.d/.

This time it should work.

4) Then do a sudo apt-get install of any package to test before you leave recovery mode. Late reply but I encountered the issue recently and tried this. It worked fine atleast for the world writable issue.

Gdcrocx
  • 121