polkit.Result.NO는 루트 사용자에 대한 작업을 거부합니까?

polkit.Result.NO는 루트 사용자에 대한 작업을 거부합니까?

예를 들어 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

이러한 규칙을 생성하면 그놈에서 키보드 일시 중지 버튼이 작동하지 않게 되었습니다.

sudo systemctl suspend -i- 즉, 작업을 계속하려면 루트 권한을 일시 중지하도록 요청하세요.

이상하게도 이로 systemctl suspend -i인해 GNOME이 관리자 암호를 묻는 메시지를 표시합니다. 따라서 polkit.Result.NO는 polkit.Result.AUTH_ADMIN과 동일한 의미를 갖는 것 같습니다.

소프트웨어 버전:

  • systemd-239-12.git8bca462.fc29.x86_64
  • 폴킷-0.115-4.4.fc29.x86_64
  • 그놈 쉘-3.30.2-1.fc29.x86_64

관련 정보