Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have two users on my system: itsadok, my main user, and elasticsearch, a user with a different ulimit for running ElasticSearch.

I would like to be able to run stuff as the secondary user without being prompted for password every time.

I added the following line to /etc/sudoers:

itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL

The way I understand it, this should allow the user itsadok, on any host, to run any command as (user or group) elasticsearch without a password. However, trying something like

itsadok@dev001$ sudo -u elasticsearch ls

prompts me for a password. Restarting the machine did not help.

What am I doing wrong?

UPDATE:

It turns our that the order of lines in sudoers is significant. I placed the line under "User privilege specification" which sounded like the right place, but the line for the %admin group that comes later was overriding the setting.

Putting the same line at the end of the sudoers file fixed the issue.

share|improve this question

2 Answers 2

up vote 7 down vote accepted

Revised answer from comments: If you place directives below #includedir, they are ignored. Move the line next to the sudo or admingroup definitions, or place it in separate file in /etc/sudoers.d/.

share|improve this answer
    
Didn't work. Also, the file already had a root ALL=(ALL:ALL) ALL with no spaces around the colon, so it doesn't seem right. Just to be safe, I tried just (elasticsearch). Doesn't work. –  itsadok Jan 10 '13 at 15:03
    
You are correct, it works without whitespace in 12.10 at least. Which Ubuntu you are using and exactly where in sudoers you place this line? I have faint recollection that if on older systems you placed the line after first #includedir, it got ignored. If it is at the end of file, try inserting it above the includedir. –  Tuminoid Jan 11 '13 at 6:23
1  
Your comment set me on the right track: the order of the entries matters. Later settings override earlier settings. –  itsadok Jan 13 '13 at 12:05

follow these steps

1.edit sudoers file (this can be present in /etc/sudoers.d/file_name)

sudo visudo -f /etc/sudoers

2.Add line at the end of the file

usernameusedforlogin ALL=(ALL) NOPASSWD:ALL

3.save file

esc :wq!

please tell me if this solution works , for me it worked

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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