전원 버튼은 루트 권한없이 컴퓨터를 어떻게 종료합니까? to be root 과 amy@amy:~$ halt halt:

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

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

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

그러나 그래픽 사용자 인터페이스 (예 : 종료 버튼 또는 하드웨어 종료 버튼)를 사용하여 종료 할 때 비밀번호를 묻는 메시지가 표시되지 않습니다. 그래픽 인터페이스의 종료는 무엇이며 왜 암호 나 루트 권한이 필요하지 않습니까?

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



답변

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


답변

Michael의 답변은 하드웨어 전원 스위치를 사용할 때 시스템 기능에 대해 올바르게 설명하지만 대부분의 데스크탑 환경은 실제로 dbus자체적으로 수행하기보다는이 목적으로 사용 합니다. 예를 들어, 그놈 용도 dbusorg.freedesktop.Hal.Device.SystemPowerManagement.Shutdown종료 버튼을 클릭 할 때. 이 dbus메시지가 전송되면 메시지를 보내는 사용자에게 시스템 종료를 수행 할 권한이 있는지 여부를 확인하기 위해 일부 검사를 수행합니다.

을 사용하여이를 에뮬레이션 할 수 있습니다 dbus-send. 예를 들어를 사용하여 시스템을 종료 dbus하려면 다음과 같이 사용하십시오.

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