시스템 서비스로 실행하려는 .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
?