이 문제로 인해 잠시 동안 버그가 발생했습니다.
가끔씩 sudo
명령 을 실행해야하는 스크립트 파일을 작성해야 합니다. 필자는 sudo
소프트웨어를 설치할 때 나타나는 것과 같은 멋진 그래픽 인터페이스를 여는 방법이 있다고 확신하지만 어떻게 실행 되는지 미리 알 필요는 없습니다 .
는 man sudo
말한다 :
-A Normally, if sudo requires a password, it will read it from the current terminal. If the -A (askpass) option is specified, a (possibly
graphical) helper program is executed to read the user's password and output the password to the standard output. If the SUDO_ASKPASS
environment variable is set, it specifies the path to the helper program. Otherwise, the value specified by the askpass option in
sudoers(5) is used
그래서 솔루션이 그 안에 -A
있고 SUDO_ASKPASS
튜플 에 있다고 확신 하지만 그 안에 넣을 것을 찾을 수있었습니다.
답변
OS X에는이를 수행 할 수있는 완전한 방법이 없지만 가짜로 만드는 몇 가지 방법이 있습니다. 먼저, AppleScript는 그래픽 인증을 기반으로 sudo-ish 작업을 수행 할 수있는 좋은 방법이 있습니다.
osascript -e "do shell script \"stufftorunasroot\" with administrator privileges"
이 메커니즘을 사용하여 sudo 타임 스탬프를 설정 한 다음 일반 sudo (5 분 시간 초과 창 내)를 사용하여 작업을 수행 할 수 있습니다.
osascript -e "do shell script \"mkdir -p /var/db/sudo/$USER; touch /var/db/sudo/$USER\" with administrator privileges" && \
sudo stufftorunasroot
마지막으로 AppleScript를 사용하여 암호를 묻는 메시지를 표시 한 다음 sudo에 전달하십시오.
pw="$(osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null)" && /
echo "$pw" | sudo -S stufftorunasroot