그놈이 포함 된 Ubuntu 10.04 LTS 데스크탑 PC가 있습니다.
그놈 또는 루트를 사용하여 재부팅 / 종료 / 일시 중지 / 최대 절전 기능을 완전히 비활성화하려면 어떻게해야합니까? 따라서 루트는 "재부팅"또는 "pm-suspend"명령을 수행하여 아무 작업도 수행하지 않으며 시스템이 계속 작동합니다. 이러한 기본 "기능"을 완전히 비활성화하려면 어떻게해야합니까?
그놈이 포함 된 Ubuntu 10.04 LTS 데스크탑 PC가 있습니다.
그놈 또는 루트를 사용하여 재부팅 / 종료 / 일시 중지 / 최대 절전 기능을 완전히 비활성화하려면 어떻게해야합니까? 따라서 루트는 "재부팅"또는 "pm-suspend"명령을 수행하여 아무 작업도 수행하지 않으며 시스템이 계속 작동합니다. 이러한 기본 "기능"을 완전히 비활성화하려면 어떻게해야합니까?
답변:
이러한 조치에 대한 사용자 액세스는 polkit에 의해 제어됩니다. 특히 다음 조치에 해당합니다.
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.restart
org.freedesktop.upower.suspend
org.freedesktop.upower.hibernate
이러한 모든 작업은 기본적으로 활성 로컬 사용자에 대해 허용됩니다 ( consolekit
시스템에 단일 사용자가 로그인 한 경우에만 처음 두 권한이 작동하도록 제한 함).
이러한 작업을 비활성화하려면 다음 /etc/polkit-1/50-local.d/disable-shutdown.pkla
과 같은 내용이 포함 된 파일 을 만드십시오 .
[Disable shutdown/whatever]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart;org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate
ResultAny=no
ResultInactive=no
ResultActive=no
이렇게하면 해당 작업이 완료되지 않습니다. 이러한 정책 파일에 대한 자세한 내용은을 실행하여 찾을 수 있습니다 man pklocalauthority
.
당신이 root
그래도 제한하려고하면 , 이것은 사소한 불편 할 것입니다. 정의 root
에 따르면 기존의 UNIX 임의 액세스 제어 시스템에 따라 무제한 계정입니다. root
액세스 권한 이있는 사용자를 신뢰할 수없는 경우 시스템을 종료하는 것보다 더 큰 문제가 있습니다.
이후 우분투 버전에서는 누군가가 호환성을 깨기로 결정했습니다. 14.04의 lightdm에서 종료 / 재부팅을 비활성화하는 방법에서 답변 했습니까? 작업이 "org.freedesktop. login1 .reboot"(및 유사)로 변경된 것 같습니다 .
예를 들어 14.04에서는 다음 행을 /etc/polkit-1/localauthority/50-local.d/restrict-login-powermgmt.pkla
작동 으로 추가하십시오 .
[Disable lightdm PowerMgmt]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions;org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
또한이 방법은 GUI에서 실행 된 재부팅 / etc 명령 만 차단합니다. 명령 줄에서 재부팅 / etc 명령을 차단하려면 모든 사용자에 대해 shutdown 명령 비활성화, 루트 결과에 설명 된대로 molly-guard를 사용할 수 있습니까?
molly-guard 설치를 고려하십시오 .
sudo apt-get install molly-guard
이 패키지는 시스템의 호스트 이름을 입력하라는 대화식 메시지를 표시하여 의도하지 않은 종료 / 재부트 / 일시 중지 / 최대 절전 모드를 방지합니다.
그러나 shutdown / reboot / suspend / hibernate를 완전히 비활성화하도록 molly-guard를 구성하는 것은 쉽지 않습니다. /etc/molly-guard/run.d/99-prevent-all에 실행 파일을 작성하십시오.
#!/bin/sh
exit 1
명령 행에서 실행 된 명령, GUI에서 실행 된 shutdown / reboot / suspend / hibernate가 명령을 무시하는 것만 보호합니다. 재부팅을 사용하여 GUI를 차단하려면 polkit 규칙을 사용할 수 있습니다 .
경고! 여기에 나열된 명령은사용하기에 위험 합니다. 자신의 위험을 제외하고는 사용하지 마십시오!
chmod -x /usr/sbin/pm-suspend
chmod -x /sbin/reboot
chmod -x /sbin/shutdown
/bin/systemctl
있으며 실행 가능 비트를 제거합니다. 이것은 또한 제어하는 중요한 실행 파일입니다 service SERVICE_NAME [stop|start|restart]
. 시스템이 더 이상 부팅되지 않을 것입니다 (시스템을 전혀 종료 할 수있는 경우).
/bin/systemctl
읽기 / 쓰기 전용으로 설정 됨-rw-r--r-- 1 root root
shutdown
하고pm-suspend
에서/sbin/
와/bin/