I know in /etc/sudoers, one can put Defaults rootpw, but then sudo asks for the root password for all commands. Is there any way I can have sudo ask for the root password for some commands and the user password for others?


Defaults can be set for everything or for certain Hosts, Users or Commands

man sudoers says :

Defaults Certain configuration options may be changed from their default values at runtime via one or more Default_Entry lines. These may affect all users on any host, all users on a specific host, a specific user, a specific command, or commands being run as a specific user. Note that per-command entries may not include command line arguments. If you need to specify arguments, define a Cmnd_Alias and reference that instead.

    Default_Type ::= 'Defaults' |
                     'Defaults' '@' Host_List |
                     'Defaults' ':' User_List |
                     'Defaults' '!' Cmnd_List |
                     'Defaults' '>' Runas_List

So try :

Defaults!cmdlist rootpw

You can turn turn off root password for specific commands and specific users by adding this line to /etc/sudoers:

username1 hostname1 =NOPASSWD: /usr/bin/command_name1,/usr/bin/command_name2
username2 hostname2 =NOPASSWD: /usr/bin/command_name1,/usr/bin/command_name2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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