다른 사용자가 로그인했을 때 Debian xfce가 종료되거나 다시 시작되는 것을 방지하는 방법

다른 사용자가 로그인했을 때 Debian xfce가 종료되거나 다시 시작되는 것을 방지하는 방법

다른 사용자가 로그인되어 있는 동안 해당 사용자가 시스템 종료나 재부팅을 시작하지 못하도록 하고 싶습니다. 사용자는 TTY 사용자(Ctrl+Alt+F3)이거나 클라이언트 호스트의 SSH 사용자일 수 있습니다.

OpenBSD에서는 org.xfce.session.policy이러한 유형의 작업을 방지하기 위해 규칙 파일과 함께 polkit을 사용합니다.

Debian Test(일명 Buster)에서 이 작업을 수행하는 방법을 찾아야 합니다.
나는 org.freedesktop.login1.policy행동을 통해 발견했다

  • org.freedesktop.login1.power-off
  • org.freedesktop.login1.power-off-multiple-sessions.

이러한 작업에 대한 규칙 파일을 만들었지만 종료 또는 다시 시작을 방지하지는 않습니다.
제 생각에는 polkit이 이러한 행동에 대해 전적으로 책임을 지지는 않습니다.

이것을 어디서 찾아야 할지 모르겠습니다. 아마도 systemd 또는 PAM일까요?

편집하다

OpenBSD와 NetBSD에서는 기본적으로 누구도 GUI를 종료하거나 재부팅하는 것이 허용되지 않습니다. 다음과 같이
규칙 파일을 생성해야 합니다 ./usr/local/share/polkit-1/rules.d/

polkit.addRule (function (action, subject) {
    if (action.id == "org.xfce.session.xfsm-shutdown-helper")
    {
        return polkit.Result.YES;
    }
});

Debian에서는 기본적으로 모든 사용자가 GUI를 종료하거나 다시 시작할 수 있습니다. 또는 에 대한 규칙 파일이
없습니다 .org.xfce.session.xfsm-shutdown-helperorg.freedesktop.login1.power-off

규칙 파일을 추가하려고 시도했지만 return polkit.Result.NO;효과가 없었습니다.
데비안에서는 를 사용하고 lightdm, BSD에서는 xdm.

답변1

Debian Testing Buster는 polkit 1.05를 사용하므로 규칙 파일과 js 구문이 없습니다.
이전 정책 키트 ini 스타일을 사용해야 합니다.
다른 사용자가 로그인되어 있는 동안 사용자가 종료 또는 재부팅을 시작하지 못하도록 하려면
/etc/polkit-1/localauthority/50-local.d/에 두 개의 pkla 파일을 생성해야 합니다.

cat /etc/polkit-1/localauthority/50-local.d/Reject_All_Users_To_login1_power-off-multiple-sessions.pkla 
[Reject all users to use login1_power-off-multiple-sessions]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no

cat /etc/polkit-1/localauthority/50-local.d/Reject_All_Users_To_login1_reboot-multiple-sessions.pkla
[Reject all users to use login1_reboot-multiple-sessions]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no

그러나 xfce는 /usr/share/polkit-1/actions/org.xfce.session.policy에 종료 또는 다시 시작 작업도 설치하기 때문에 이것만으로는 충분하지 않습니다.
또한 이 작업을 위해 /etc/polkit-1/localauthority/50-local.d/에 pkla 파일을 생성해야 합니다.

cat /etc/polkit-1/localauthority/50-local.d/Reject_All_Users_To_Use_Xfce_Session_Policy.pkla 
[Reject all users to use xfce_session_policy]
Identity=unix-user:*
Action=org.xfce.session.xfsm-shutdown-helper
ResultAny=no
ResultInactive=no
ResultActive=no

관련 정보