嘗試使用 systemd 將我的應用程式作為服務運行時出現權限被拒絕錯誤

嘗試使用 systemd 將我的應用程式作為服務運行時出現權限被拒絕錯誤

我想在 Ubuntu 中由非特權用戶將應用程式作為服務運行。以下是建立使用者的命令:

sudo groupadd -r mygroup
sudo useradd -r -s /bin/false -g mygroup myuser
sudo chown -R mygroup:myuser /path/to/my/app

以下是我的服務文件:

[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

但是,當我啟動服務時,日誌中出現以下錯誤:

Changing to the requested working directory failed: Permission denied
Failed at step CHDIR spawning /usr/bin/java: Permission denied

我嘗試將使用者新增至 sudo 群組sudo usermod -aG sudo myuser並將 sudo 新增至 ExecStart 中,也不起作用。

Changing to the requested working directory failed: Permission denied
Failed at step CHDIR spawning sudo: Permission denied

答案1

chown 的概要如下:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

您將 mygroup:myuser 作為參數,這是錯誤的方式。使用:

sudo chown -R myuser:mygroup /path/to/my/app

相關內容