ファイルの解決権限は正しいが、systemdサービスは権限がないことを示し、起動に失敗した.ヒント:service:Failed to execute command:Permission denied
げんしょう
ファイル権限は正しいが、systemd・起動時に
ファイル権限:
エラー内容:
ソリューション
これは依然として
これは、実行ファイルの
原因が分かった以上、解決策もあるので、次のコマンドを実行すれば解決できます.
このうち
ファイル権限は正しいが、systemd・起動時に
Permission denied
エラーが発生した.ファイル権限:
[core@localhost ~]$ ll /usr/local/bin/
total 192512
-rwxrwxr-x. 1 core core 39813120 Jun 6 09:00 kubeadm
-rwxrwxr-x. 1 core core 44032000 Jun 6 09:00 kubectl
-rwxrwxr-x. 1 core core 113283800 Jun 6 09:00 kubelet
エラー内容:
Jun 06 10:48:52 localhost systemd[1]: Started kubelet: The Kubernetes Node Agent.
Jun 06 10:48:52 localhost systemd[1]: kubelet.service: Main process exited, code=exited, status=203/EXEC
Jun 06 10:48:52 localhost systemd[1]: kubelet.service: Failed with result 'exit-code'.
Jun 06 10:49:02 localhost systemd[1]: kubelet.service: Scheduled restart job, restart counter is at 79.
Jun 06 10:49:02 localhost systemd[1]: Stopped kubelet: The Kubernetes Node Agent.
Jun 06 10:49:02 localhost systemd[13884]: kubelet.service: Failed to execute command: Permission denied
Jun 06 10:49:02 localhost systemd[13884]: kubelet.service: Failed at step EXEC spawning /usr/local/bin/kubelet: Permission denied
ソリューション
これは依然として
SELinux
がやった鬼だ.これは、実行ファイルの
が正しくないことによるエラーです.こちらは、実行可能ファイルがユーザーホームに保存されてから、ターゲットディレクトリに移動しているからです.ただし、実行可能ファイルをユーザホームからターゲットディレクトリに移動すると、SELinux
のコンテキストは自動的に変更されず、依然としてユーザホームである.だから問題が発生しました.原因が分かった以上、解決策もあるので、次のコマンドを実行すれば解決できます.
sudo restorecon -rv /usr/local/bin/
このうち
/usr/local/bin/
ではファイルが存在するディレクトリが実行され、実行時には正しいディレクトリに置き換える必要があります.