루트 권한 없이 전원 버튼을 눌러 컴퓨터를 종료하는 방법은 무엇입니까?

루트 권한 없이 전원 버튼을 눌러 컴퓨터를 종료하는 방법은 무엇입니까?

명령줄이나 터미널에서 컴퓨터를 종료하려면 루트 권한이 있어야 합니다.

amy@amy:~$ shutdown now
shutdown: Need to be root

그리고

amy@amy:~$ halt
halt: Need to be root

그러나 GUI(예: 종료 버튼 또는 하드웨어 종료 버튼)를 사용하여 종료할 때 비밀번호를 묻는 메시지가 표시되지 않습니다. 그래픽 인터페이스를 닫는다는 것은 무엇을 의미합니까? 비밀번호나 루트 액세스가 필요하지 않은 이유는 무엇입니까?

저는 우분투 11.04 Natty를 사용하고 있습니다.

답변1

하드웨어 전원 버튼은 ACPI 이벤트 acpid(ACPI 데몬)를 트리거하고 이 경우 시스템을 종료하여 반응합니다. 단, 원하는 작업을 수행하도록 할 수 있습니다. ACPI 데몬은 루트로 실행되므로 시스템을 종료할 수 있는 권한을 갖습니다. 데스크탑 환경(예: gdmGnome)도 일반적으로 루트로 실행되므로 동일한 방식으로 작동하는 것으로 생각됩니다. 시스템을 종료할 권한은 없지만 시스템을 종료하고 gdm싶다고 말하면 시스템에서 종료할 수 있습니다. 당신을 대신하여

답변2

Michael의 답변에서는 하드웨어 전원 스위치를 사용할 때의 시스템 기능에 대해 올바르게 설명하고 있지만 대부분의 데스크탑 환경은 실제로 dbus이 작업을 수행하기보다는 이러한 목적으로 설계되었습니다. 예를 들어, GNOME은 종료 버튼을 클릭할 때 사용합니다. 이 메시지가 전송되면 dbus메시지를 보내는 사용자에게 종료를 수행할 수 있는 권한이 있는지 확인하기 위해 몇 가지 검사가 수행되며, 권한이 있는 경우 시스템이 종료됩니다.org.freedesktop.Hal.Device.SystemPowerManagement.Shutdowndbus

를 사용하여 이를 시뮬레이션할 수 있습니다 dbus-send. 예를 들어 shutdown 을 사용하려면 dbus다음과 같이 사용하세요.

dbus-send --system --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

관련 정보