xbindkeys가 호출하는 스크립트에서 sudo 호출

xbindkeys가 호출하는 스크립트에서 sudo 호출

저는 MacBook Pro를 가지고 있고 키보드의 백라이트 수준을 제어하는 ​​스크립트를 바인딩하고 있습니다. 나는 두 개의 스크립트를 작성했는데 그것들은 훌륭하게 작동하지만 키를 눌러 실행할 수는 없습니다. .xbindkeysrc라는 구성 파일을 사용하여 구성 파일에서 xbindkeys를 설정하고 실행 중입니다. 스크립트를 특수 기능 키(fn과 같은 줄)에 바인딩하려고 합니다. 실행하면 xbindkeys -s현재 작동하지 않는 두 개의 바인딩 시도가 표시되기 때문에 내 구성 파일이 올바르게 로드되고 있음을 알고 있습니다. my.xbindkeysrc 파일의 내용입니다.

###########################
# xbindkeys configuration #
###########################
#
# Version: 0.1.3
#
# If you edit this, do not forget to uncomment any lines that you change.
# The pound(#) symbol may be used anywhere for comments.
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h 
# The XK_ is not needed. 
#
# List of modifier (on my keyboard): 
#   Control, Shift, Mod1 (Alt), Mod2 (NumLock), 
#   Mod3 (CapsLock), Mod4, Mod5 (Scroll). 
#
# Another way to specifie a key is to use 'xev' and set the 
# keycode with c:nnn or the modifier with m:nnn where nnn is 
# the keycode or the state returned by xev 
#
# This file is created by xbindkey_config 
# The structure is : 
# # Remark 
# "command" 
# m:xxx + c:xxx 
# Shift+... 




#keystate_numlock = enable
#keystate_scrolllock = enable
#keystate_capslock = enable



"bash /opt/keyLightInc.sh"
    m:0x0 + c:238
    XF86KbdBrightnessUp 

"bash /opt/keyLightDec.sh"
    m:0x0 + c:237
    XF86KbdBrightnessDown 

#
# End of xbindkeys configuration

자세한 옵션부터 시작했습니다. 출력은 다음과 같습니다.

screen 0 for window 259
Start program with fork+exec call
sudo: no tty present and no askpass program specified

답변1

sudoers파일에 해당 옵션이 설정되어 있으면 requiretty터미널에서만 sudo를 호출할 수 있습니다.

파일 sudoers에 해당 requiretty옵션이 설정되어 있지 않으면 어디에서나 sudo를 호출할 수 있지만 비밀번호를 묻는 메시지가 나타나면 터미널이 필요합니다. "sudo: tty가 없고 Askpass 프로그램이 지정되지 않았습니다"라는 메시지는 sudo가 비밀번호를 묻는 메시지를 표시하려고 시도했지만 실패했음을 의미합니다.

-Asudo가 다른 방법을 사용하여 비밀번호를 묻는 메시지를 표시하도록 옵션을 전달할 수 있습니다 . X11에서 실행 중이므로 ssh-askpassX11 창에서 비밀번호를 묻는 OpenSSH와 함께 배포되는 프로그램을 사용할 수 있습니다.

sudo -A /usr/bin/ssh-askpass whatever-command-you-need-to-execute-as-root

또는,비밀번호를 입력하지 않고도 프로그램을 직접 실행할 수 있습니다..

관련 정보