web-dev-qa-db-ja.com

CentOS 7でpolkit.serviceを無効にする適切な方法

なぜ?

私のサービスは適切なユニットファイルまたはinitスクリプトを介して開始されます。私のサーバーでは、通常のユーザーがsu以外に特別なことをする必要はありません。私は特に、他のサービスが再起動されたときに独自に起動することなく、polkitを完全にシャットダウンする方法を探しています。

PCI環境の監査人にもこれを説明する問題が発生すると予測しています。各サービスの目的を説明する必要があります。 PCI環境でのpolkitの正当な使用例はありません。

追記:polkitをインストールしませんでした。これらのサーバーには、最小限のインストール/で約670MBがあります。これは、polkitをインストールしたように見えるsystemdの更新であり、仕様には明らかにすべてのsystemd管理サービスへの依存関係があります。インストールしたら、マシンを再構築して削除する必要があります。インストール後にnssを削除しようとするのと同じです。私の懸念は、私がアンストールを強制した場合、systemdが作動するファイルが残っている可能性があり、それがそこにあると想定していることです。

私が試したこと:

作成/etc/polkit-1/rules.d/99-deny-all.rules

polkit.addRule(function(action, subject) {
    return polkit.Result.YES;
});

その後

systemctl daemon-reload && systemctl daemon-reexec

これは何もしません、/usr/lib/polkit-1/polkitd --no-debugは、systemdの下の他のサービスが再起動されても起動し続けます。

[更新] Alexanderが述べたように、polkitを再起動すると設定がpolkit自体に適用されますが、それは問題ありませんが、開始しないようにpolkitに指示し、他のサービスを中断しないようにする方法を探しています。

[update 2]これにより、実際には一部のサービスが正しく再起動できなくなる場合があります。


サービスをマスクまたは無効化します。

これにより、起動およびシャットダウン時に他のサービスがハングし、polkitを待機します。


編集/usr/share/dbus-1/sstem-services/org.freedesktop.PolicyKit1.serviceと:

[snip]
Exec=/bin/false
[snip]

その後

systemctl daemon-reload && systemctl daemon-reexec

これは何もしません、/usr/lib/polkit-1/polkitd --no-debugは、systemdの下の他のサービスが再起動されても起動し続けます。


マニュアルページを数回読んだことがあります。それはおそらく私が見逃している本当にシンプルなものです。私の好みは、systemdパッケージの更新後も持続する方法です。

私が探している最終目標は、unkit、bind、dhcpなどの他のデーモンが再起動されたときにpolkit.serviceが起動しないことです。

5
Aaron

更新

RedhatはPolkitに関するRPMの依存関係を変更しました。以前のアップグレードまたはインストール中に何かが引き込んだ場合でも、サーバーからアンインストールできるようになりました。

CentOS 7.6で他の人が構築したサーバーからPolkitをアンインストールできるようになりました。

これはワークステーションでも必要であり、デスクトップでの使用に適しているようです。

1
Aaron

/etc/polkit-1/rules.d/99-deny-all.rulesにルールを追加した後、systemctl restart polkitでpolkitサービスを再起動する必要があります。この後、systemctlは非特権ユーザーからの要求を実行します。

1

システムの所有者である私たちは、ディストリビューションビルダーの意図を気にしません。多くの人は同意しませんが、システムのコンポーネントの起動/停止/インストール/削除などの制限をベンダーが私の資産に侵入することを考慮し、私が適切だと思うようにシステムを扱います。

polkitの削除が最も適切なオプションとして表示され、ディストリビューションビルダーがそのための「サポートされている」方法を提供しなかった場合は、polkitdとファイルの名前を変更してから、service stopコマンドを発行します。

私の特定のケースでは、polkitは、私がそれを必要としないときに1つのCPUコアをピン留めする傾向があり、上記の方法を使用してそれを削除しました。あなたは歓迎され、ユーザーに力を与えます!

0
user518021