kestrel-dotnetapp.service: EXEC フェーズで /usr/local/dotnet の作成に失敗しました。権限が拒否されました。

kestrel-dotnetapp.service: EXEC フェーズで /usr/local/dotnet の作成に失敗しました。権限が拒否されました。

MSに提供されている手順を使用してCentos8に.NET Core(3.1)アプリケーションをインストールしようとしています。入力する

Microsoft のドキュメントに従ったサービスファイル/etc/systemd/system/kestrel-dotnetapp.service

[単位]
説明= centos用.NET Web APIアプリ

[Service]
WorkingDirectory=/var/Application/netcoreapp31
ExecStart=/usr/local/dotnet /var/Application/netcoreapp31/helloapp.dll
Restart=always # 10秒後に再起動サービス dotnet サービスがクラッシュする場合:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnetapp
User=user
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[インストール]
WantedBy=multi-user.

これを行うと、>sudo systemctl restart kestrel-dotnetapp.serviceエラーが発生します。

6月4日 22:51:28 ホスト名 systemd[1827]: kestrel-dotnetapp.service: コマンドを実行できません: 権限が拒否されました。
6月4日 22:51:28 ホスト名 systemd[1827]: kestrel-dotnetapp.service: EXEC フェーズで失敗しました。 build /usr/local/dotnet:権限が拒否されました
- 件名:プロセス/usr/local/dotnetを実行できません
- 定義者:systemd

下から探すls-la:

[user@hostname dotnet]$ ls -la
total 108
drwxr-xr-x.  4 root root    94 Apr 22 09:34 .
drwxr-xr-x. 14 root root   154 Jun  4 21:11 ..
-rwxr-xr-x.  1 root root 73048 Apr 22 09:32 dotnet
drwxr-xr-x.  3 root root    17 Apr 22 09:34 host
-rw-r--r--.  1 root root  1116 Apr 22 09:29 LICENSE.txt
drwxr-xr-x.  4 root root    67 Apr 22 09:34 shared
-rw-r--r--.  1 root root 31330 Apr 22 09:29 ThirdPartyNotices.txt

マイアプリケーション結果フォルダ

[user@hostname Application]$ ls -la
total 8
drwxr-xr-x.  3 root root     26 Jun  4 20:53 .
drwxr-xr-x. 22 root root   4096 Jun  4 20:53 ..
drwxr-xr-x.  2  777 user 4096 Jun  4 20:45 netcoreapp31

答え1

Redhat OS usr/bin/dotnet 権限の拒否に対する次の回避策を探します。

  1. ExecStart=/usr/bin/dotnet/dotnet
  2. サービスファイルの承認(例:chmod 755 your filename.service
  3. 権限を付与したら、次のコマンドを実行します。
    sudo systemctl enable Your filename.service
    sudo systemctl start  Your filename.service  
    sudo systemctl status Your filename.service          
    

ファイル名の例:abc.service

関連情報