Linux – How to run service not as root

linuxprivilegesservicessystemd

I created successfully a service on my Linux RedHat by copy the Unit-File to /usr/lib/systemd/system/mediation.service

I can successfully start/stop/enable/… the service with

systemctl enable mediation
systemctl start mediation
etc.

However, since systemctl is usually executed by root, my application runs also as root. How can I configure the service that it runs under a different (non-privileged) user?

Best Answer

Use:

User=myuser

In your unit file.

This is documented in man systemd.exec

Also, custom files should not go in /usr/lib/systemd/system, they should go in /etc/systemd/system. The former is where packages install their files. The later is where system administrators should put their files.