![Systemd는 서비스를 실행하기 위해 app.service에 지정된 사용자를 사용하지 않습니다. 무엇이 잘못되었을 수 있습니까?](https://linux55.com/image/168753/Systemd%EB%8A%94%20%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20app.service%EC%97%90%20%EC%A7%80%EC%A0%95%EB%90%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EB%AC%B4%EC%97%87%EC%9D%B4%20%EC%9E%98%EB%AA%BB%EB%90%98%EC%97%88%EC%9D%84%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
시스템 서비스로 실행하려는 .Net Core 3 애플리케이션이 있습니다.
[Unit]
Description=app-prod
[Service]
WorkingDirectory=/var/www/app-prod
ExecStart=/usr/bin/dotnet /var/www/app-prod/app
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-app-prod
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
내가 사용하고 있는 서비스 구성에서 볼 수 있듯이 User=www-data
애플리케이션 경로에 대한 권한은 이미 해당 사용자가 소유하고 있습니다. 하지만 서비스를 시작하면 폴더를 확인하고 폴더 생성을 시도하지만 예외가 발생합니다.
mar 07 14:15:14 void dotnet-app-prod[8004]: System.UnauthorizedAccessException: Access to the path '/var/www/.
mar 07 14:15:14 void dotnet-app-prod[8004]: ---> System.IO.IOException: Permission denied
mar 07 14:15:14 void dotnet-app-prod[8004]: --- End of inner exception stack trace ---
mar 07 14:15:14 void dotnet-app-prod[8004]: at System.IO.FileSystem.CreateDirectory(String fullPath)
보시다시피 서비스를 실행하는 데 사용되는 사용자는 void
해당 환경에 로그인한 일반 사용자일 뿐입니다.
필요한 서비스 대신 잘못된 사용자가 서비스를 실행하도록 하려면 내가 무엇을 잘못했을 수 있습니까 www-data
?