
Ich möchte eine App als Dienst durch einen nicht privilegierten Benutzer in Ubuntu ausführen. Nachfolgend der Befehl zum Erstellen des Benutzers:
sudo groupadd -r mygroup
sudo useradd -r -s /bin/false -g mygroup myuser
sudo chown -R mygroup:myuser /path/to/my/app
Nachfolgend meine Servicedatei:
[Unit]
Description=Myapp server
After=syslog.target
After=network.target
[Service]
WorkingDirectory=/path/to/my/app
ExecStart=/usr/bin/java -jar /path/to/my/app/myapp.jar
User=myuser
Type=simple
StandardOutput=syslog
StandardError=syslog
SuccessExitStatus=143
TimeoutStopSec=120
Restart=always
[Install]
WantedBy=multi-user.target
Wenn ich den Dienst starte, wird jedoch der folgende Fehler im Protokoll angezeigt:
Changing to the requested working directory failed: Permission denied
Failed at step CHDIR spawning /usr/bin/java: Permission denied
Ich habe versucht, den Benutzer zur Sudo-Gruppe hinzuzufügen sudo usermod -aG sudo myuser
und Sudo zu ExecStart hinzuzufügen, aber das funktioniert auch nicht.
Changing to the requested working directory failed: Permission denied
Failed at step CHDIR spawning sudo: Permission denied
Antwort1
Die Inhaltsangabe von Chown lautet wie folgt:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
Sie geben mygroup:myuser als Argumente an, was falsch herum ist. Verwenden Sie:
sudo chown -R myuser:mygroup /path/to/my/app