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 그룹에 사용자를 추가하고 ExecStart에 sudo를 추가하려고 시도했지만 sudo usermod -aG sudo myuser작동하지 않습니다.

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

관련 정보