0

I want to be able to restart a service in Ubuntu without being root.

$ whoami

ubuntu

Then I did:

sudo visudo

and I added a line:

ubuntu ALL = NOPASSWD: /usr/sbin/service javaspringapi restart

And saved the file. Resulting sudoers file:

sudo cat /etc/sudoers

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

ubuntu ALL = NOPASSWD: /usr/sbin/service javaspringapi restart

Now when I try to run the command:

/usr/sbin/service javaspringapi restart

I still get:

 ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === 
 Authentication is required to restart 'javaspringapi.service'.
 Authenticating as: Ubuntu (ubuntu) 
 Password:
1

The sudoers file is referenced only if you run sudo (hence the name).

So you should be able to restart the service with

sudo /usr/sbin/service javaspringapi restart

without being prompted for password as this is what you have configured.

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.