K.Chen이 묻는 질문은 CLI에서 수행 할 때 sudo 권한이 필요한 이유는 무엇이며 GUI에서 수행 할 때 그러한 권한이 필요하지 않은 이유입니다.
대답의 첫 번째 부분은 Gnome, KDE, Xfce, Mate, Cinnamon과 같은 데스크탑 환경을 디자인하는 사람들이 사용자의 작업을 단순화하려고 시도하고 sudo 자격 증명을 요구하지 않고 종료 및 재부팅을 구성한다는 것입니다. 우연히도 이는 프로그램 종료와 관련 이 없는 종료 순서가 있어야 함을 의미하며 , sudo 권한이 필요합니다 (그 방법은 없습니다).
각 DE가 어떻게하는지 자세히 알지 못하지만 루트 권한이 필요하지 않은 시스템을 종료하거나 다시 시작 / 종료 / 최대 절전 모드로 전환하는 방법이 있다는 것을 알고 있습니다. Arch Linux 포럼 게시물에서 원본 게시물 을 찾을 수 있습니다 . 본질적으로 hese 명령을 발행하는 것입니다.
정지
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit"/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
재부팅
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
dbus- 일시 중지
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
동면하다
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
내 생각에 GUI 버튼은 대략 이러한 명령을 사용합니다. 확실하게 코드를 살펴 봐야하지만 이것이 안전한 내기라고 생각합니다.