전원 버튼은 루트 권한없이 컴퓨터를 어떻게 종료합니까?


36

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

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

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

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

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



1
공격자가 컴퓨터에 물리적으로 액세스 할 수 있으면 이미 손실 된 것입니다. 상자 안에 손을 뻗은 사람이 거의 모든 일을하는 것을 막으려 고하는 것은 기껏해야 지연되는 전술이며 공격자보다 일상적인 사용자에게 더 많은 불편 함을 유발합니다. 대부분의 Linux 배포판은 부팅 중에 정확히 이런 이유로 엄격하게 말하면 루트 프롬프트를 표시합니다.
Joseph Rogers

답변:


33

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


안전합니까? '원하는대로 할 수 있습니다.'
amyassin

7
acpid이미 수행 한 것과 다른 것을 수행 하려면 근본이되어야하므로 이미 안전하지 않은 일을 할 수있는 권한이 있습니다. 또한 SELinux와 같은 MAC 시스템을 사용하여 보호 acpid할 수 있으며 루트로 실행되는 동안에도 허용되는 작업을 제한 할 수 있습니다.
Warren Young

5
@amyassin 글쎄요, 무엇을 바꾸려면 루트 권한이 필요합니다. 정상적인 사용자는 무엇을해야하는지 말할 수 없습니다. 그러나 acpid구성 가능하며 하드웨어 이벤트에 따라 다른 스크립트를 실행할 수 있습니다 (예 : acpid전원 버튼을 눌렀을 때 컴퓨터를 잠
갔습니다

7
@amyassen 누군가가 컴퓨터에 물리적으로 액세스 할 수있는 경우 보안에 대해 걱정하기에 너무 늦습니다. 전원 단추가 정상적으로 종료되지 않으면 전원 코드를 뽑아서 비정상적으로 종료 할 수 있습니다.
Shadur

3
이 '악의적 인 소프트웨어'는 셧다운에 대해 init에게 알리기 위해 루트 소유권과 SUID 권한을 가져와야 할 것이다.
Shadur

11

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.