polkit.Result.NOはrootユーザーに対する操作を拒否しますか?

polkit.Result.NOはrootユーザーに対する操作を拒否しますか?

たとえば、Arch Wikiのこの例では、ユーザーはsystemd-logindまだ一時root停止と休止状態を要求できますか?

次のルールは、すべてのユーザーに対して一時停止と休止状態を無効にします。

/etc/polkit-1/rules.d/10-disable-suspens.rules

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend" ||
        action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
        action.id == "org.freedesktop.login1.hibernate" ||
        action.id == "org.freedesktop.login1.hibernate-multiple-sessions")
    {
        return polkit.Result.NO;
    }
});

答え1

これらのルールを作成すると、GNOMEでキーボード一時停止ボタンが機能しなくなりました。

sudo systemctl suspend -i- つまり、作業を続行するにはroot権限を一時停止するように依頼してください。

奇妙なことに、これにより、systemctl suspend -iGNOMEは管理者パスワードの入力を求められます。したがって、polkit.Result.NOはpolkit.Result.AUTH_ADMINと同じ意味を持つようです。

ソフトウェアバージョン:

  • systemd-239-12.git8bca462.fc29.x86_64
  • ポルケット-0.115-4.4.fc29.x86_64
  • GNOME Shell-3.30.2-1.fc29.x86_64

関連情報