systemd - su:/etc/init.dスクリプトで権限が拒否されました。

systemd - su:/etc/init.dスクリプトで権限が拒否されました。

/etc/init.d私たちはRHEL6からRHEL8に移行しており、再構築してテストする必要があるアプリケーションがたくさんあるので、以前のスクリプトを維持したいと思います。

多くの初期化スクリプトでは、以前のバージョンとの互換性がうまく機能します。

ただし、rootからアプリケーション固有のユーザーに切り替える他のスクリプトの場合は、次のようにします。

  su - username -c "application-start-script"

再起動中に失敗します。

  su: Pemission denied.

まだ、手動で起動そしてsystemctl 働く。再起動中にのみこの障害が発生します。

whoamiスクリプトが次のように実行されることを確認しました(を使用して)。どちらの場合も。

だから私の質問は次のとおりです。

suシステムの起動中にrootとして実行すると、どのように/なぜ失敗するのですか?

ベストアンサー1

すでに解決済みとマークされているにもかかわらず、一部の人はSELinuxを無効にするオプションがないため、参加したいと考えていました。

init.dディレクトリ内のls -ZSELinuxコンテキストを使用してすべてのファイルを表示します。スクリプトには他の起動スクリプトと比較して間違ったコンテキストがある可能性があるため、一致するように変更する必要があります。最も簡単なのは走ることです。

sudo chcon --reference=nameofascriptthatworks yourscriptname

そして、他のコンテキストでコンテキストが正しく設定されていることを確認してくださいls -Z

おすすめ記事