Run as Non-Root User

The Linux installer runs Traccar as root by default. You can change this using a systemd service override.

Create a user named traccar, unless it already exists:

sudo useradd --system --user-group --no-create-home --shell /usr/sbin/nologin traccar

Stop Traccar and give the user access to its data, logs and media:

sudo systemctl stop traccar
sudo mkdir -p /opt/traccar/data /opt/traccar/logs /opt/traccar/media
sudo chown -R traccar:traccar /opt/traccar/data /opt/traccar/logs /opt/traccar/media

The user must also be able to read the application files and conf/traccar.xml. Adjust paths and permissions if you have customized your installation.

Run sudo systemctl edit traccar and add:

[Service]
User=traccar
Group=traccar

Then start the service:

sudo systemctl daemon-reload
sudo systemctl start traccar

If it fails to start, check journalctl -u traccar for permission errors.