26

This question already has an answer here:

I am getting this error:

sudo: parse error in /etc/sudoers near line 23
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

I was trying to disable password authentication so I don't have to type password every time I want to install something, but I probably changed it in a not very good way. I am a newbie to Ubuntu, I got sick of Windows :)

So far I've found some people suggesting booting in single user mode, but I'm afraid of messing things up more.

How can I fix this error?

marked as duplicate by Eliah Kagan, David Foerster, Zanna, muru, Eric Carvalho Jan 9 '17 at 16:13

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • If you boot in single user mode and use visudo, then it won't let you save an incorrect file, so you will not be able to mess things up further. – hexafraction Oct 30 '12 at 11:18
  • Thank you, how do I change the file, then? And, how exactly do I boot in single user mode? – Robert Fáber Oct 30 '12 at 11:19
  • Hold Shift immediately while booting so that you get the GRUB screen. Select the recovery mode. Choose to drop to a root terminal. Run mount -n -o remount,rw / and then visudo. Ctrl+O saves, Ctrl+X exits without saving. It won't let you save a bad file. – hexafraction Oct 30 '12 at 11:21
  • 2
    @ObsessiveSSOℲ it would be nice to convert the comment to answer and let the questioner to mark it as the best answer. For future - help - others I mean. – NickTux Oct 30 '12 at 12:14
  • 2
    On newer Ubuntu distributions, there's a simple solution (not requiring any reboot nor recovery), described here: askubuntu.com/a/73872 – user321342 Aug 28 '14 at 11:23
24

Fixing this is dead simple, and it is answered elsewhere on askubuntu.

Short answer, use:

pkexec editor_of_choice
  • 1
    This is definitely the simplest and best answer. I had no clue pkexec existed. Thanks a lot both – Bizmate Apr 14 '16 at 17:05
  • 1
    When I do pkexec, it gives list of users to authenticate. When I type password, it gives Authentication failure. Please help. – Shyamkkhadka May 24 '18 at 5:44
17

Hold Shift immediately while booting so that you get the GRUB screen. Select the recovery mode. Choose to drop to a root terminal. Run mount -n -o remount,rw / and then visudo. It'll let you fix your problems with the file and save. It won't let you save a malformed file.

  • Shift didn't work for me, I had be pressing keys to get grub – nafg Nov 19 '13 at 6:13
  • @nafg Every configuration is different. – hexafraction Nov 19 '13 at 11:17
  • I don't have visudo installed in my ubuntu. What can I do ? – Shyamkkhadka May 24 '18 at 5:45
  • In Ubuntu 16.04, "Drop to Root terminal" asks for root password (which obviously will not work, because /etc/sudoers is broken). Pressing Ctrl+D will just bring you back to the GRUB screen. – Juha Untinen Aug 14 '18 at 9:26
2

Folowing solution is for remote servers, it works!

http://ubuntuforums.org/showthread.php?t=2036382&p=12144840#post12144840

then just use visudo to add wheel, etc


  1. Rename your current file

    mv /etc/sudoers{,.bak}

  2. Create a new one vi /etc/sudoers with the following basic content:

    # /etc/sudoers
    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # See the man page for details on how to write a sudoers file.
    # Defaults    env_reset
    # Host alias specification
    # User alias specification
    # Cmnd alias specification
    # User privilege specification
    root    ALL=(ALL) ALL
    # Allow members of group sudo to execute any command after they have
    # provided their password
    # (Note that later entries override this, so you might need to move
    # it further down)
    %sudo ALL=(ALL) ALL
    #
    #includedir /etc/sudoers.d
    # Members of the admin group may gain root privileges
    %admin ALL=(ALL) ALL
    
  3. Run visudo and add your custom stuff.

2

You can do this:

Create a copy

cp /etc/sudoers /etc/sudoers.bak

Edit problem parts there

vim /etc/sudoers.bak

Replace the origin sudoers file

cp /etc/sudoers.bak /etc/sudoers

It works for me.

  • It worked when i logged in using super user (su -) and executed above steps.. Thanks – Dave Oct 13 '14 at 6:15
  • 14
    But you need to be root. so... – thomas-peter Nov 22 '14 at 9:46
1

If u messed up your sudoers file.You'll need to:

  • Reboot into recovery mode (hit escape during boot, choose the recovery mode option on the grub screen)
  • Choose the 'Enable networking' option (if you don't your filesystem will be mounted as read-only. who knew)
  • Chosee the 'Drop to root shell' option
  • run visudo, fix your file
  • Reboot with normal grub option

source :- http://mario.net.au/content/recover-etcsudoers-ubuntu-1204

  • 1
    Follow up question: When I choose the Enable networking option, I'm prompted to tell the system that I'm sure. I do that and I just drop into nothing. No root prompt, nothing. What should I expect to see/do after the 2nd step? Thanks. – Rob Wilkerson Jan 23 '13 at 14:25
0

I screwed up the sudoers file to find out that I don't remember the root password. Solution: rebooted under Windows (I have a dual boot) and edited the file using ext2fsd (you have to reboot after the installation). In principle, this could be another Linux or a live flash, not necessarily Windows.

  • A lot of people dual-boot Windows and Ubuntu, so this is a solid approach! I know been a while since you've posted this answer... but might you be willing to edit this to expand it with detailed information about specifically how to set up and use ext2fsd for this purpose? – Eliah Kagan Jan 9 '17 at 1:29

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