데스크탑 환경 없이 X에서 종료

데스크탑 환경 없이 X에서 종료

최근 데스크탑 환경을 포기하고 윈도우 매니저(i3)와 X만 사용하고 있습니다. 모든 것이 잘 작동하고 많은 것을 놓치지 않습니다. 단 한 가지를 제외하면 종료 버튼이 있습니다. 이제 다음 명령을 실행해야만 종료할 수 있습니다.

sudo shutdown -Ph now

터미널에서. 이것은 작동하지만 i3에서 클릭으로 닫히는 키 바인딩을 만들고 싶습니다 Mod+x. 이것을 달성하는 방법을 잘 모르겠습니다. 만약 내가 스크립트를 작성 ~/shutdown하고 참조한다면:

bindsym $mod+x exec ~/shutdown

글쎄, 이것은 작동하지 않습니다. 제가 일반 사용자로 실행 중이고 이 스크립트 내에서 sudo를 실행하고 있기 때문인 것 같습니다. 터미널이 나타나서 비밀번호를 묻는 메시지를 표시하고 싶지만(가능한 경우 비밀번호를 요구하지 않는 것이 바람직하지만) 어떻게 해야 할지 잘 모르겠습니다. 이를 수행할 수 있는 방법이 있습니까?

아치 리눅스를 사용하세요.

답변1

당신이 사용하는 경우D-Bus 세션그리고콘솔 툴킷(이것은 대부분의 최신 데스크탑 시스템의 기본 구성 요소이므로 이미 설치되어 있을 것입니다.)종료sudo shutdown루트 권한이 필요하지 않은 약간 더 깔끔한 방법은 다음과 같습니다.

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \
 /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

마찬가지로, 시스템재시작이는 다음을 통해 수행할 수 있습니다.

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \
  /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

이를 스크립트에 넣고 바로가기 또는 메뉴 항목을 추가하여 호출할 수 있습니다.

답변2

문서에 따르면 i3에서는 다음을 바인딩할 수 있습니다.키 코드 또는 키 기호.

따라서 다음과 같이 파일에 항목을 추가할 수 있습니다 sudoers.

plua  ALL=(ALL) NOPASSWD:/sbin/shutdown

이렇게 하면 사용자가 plua비밀번호를 발행하지 않고 종료할 수 있는 권한을 부여한 다음 해당 효과에 대한 키 바인딩을 생성할 수 있습니다. 예를 들면 다음과 같습니다.

bind Mod+x exec /path/to/shutdownscript

답변3

한 가지 방법은 sudo에서 비밀번호를 묻는 메시지를 표시하지 않도록 하는 것입니다. /etc/sudoers 파일에 다음을 추가합니다(johndoe를 사용자로 교체).

johndoe ALL = (root) NOPASSWD: /sbin/shutdown

관련 정보