Automator 애플리케이션에 비밀번호 전달


9

시스템에서 FTP 연결을 열기 위해 다음 셸 스크립트를 사용하여 Automator 응용 프로그램을 작성했습니다.

sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
osascript -e 'tell app "Finder" to display alert "SFTP Opened"'

sudo 명령에 암호가 필요 하다는 점을 제외하고는 예상대로 정확하게 작동 합니다. 터미널에서 동일한 명령을 실행하면 암호를 입력하라는 메시지가 표시되지만 Automator 앱으로 실행되면 입력하라는 메시지가 표시되지 않습니다. 어쨌든 Automator 스크립트 내에서 프로그래밍 방식 으로이 sudo에 암호를 전달할 수 있습니까? 나는 이것이 안전한 관행이 아니라는 것을 알고 있지만 내 시스템은 나 이외의 사람이 합리적으로 안전하고 손대지 않기 때문에 여전히하고 싶습니다.

"관리자 권한으로 쉘 스크립트 실행"방법에 다음 오류가 발생합니다.

여기에 이미지 설명을 입력하십시오

답변:


10

AppleScript는 다음을 사용하여이를 가능하게합니다 with administrator privileges.

osascript -e 'do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges'

비밀번호는 전달하지 않지만 표준 OS X 프롬프트로 프롬프트합니다.

다음 두 가지 방법 중 하나로 Automator 워크 플로우에서이를 사용할 수 있습니다.


1
@Amit osascript는 bash 용입니다.) AppleScript Automator 작업에서 순수한 AppleScript를 원하면 다음과 같이 osascript를 제거하십시오. do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges( 이 그림에서 다음 중 하나를 수행하십시오. )
grg

1
예, 이것은 매력처럼 작동했습니다! 양해 해 주셔서 감사합니다. 바보 같은 날!
TheLearner

2

배고 있다

대신 와의 상호 작용을 스크립트 할 것으로 예상 되는 도구를 사용할 수 있습니다 sudo. expect이 상황을 위해 설계되었습니다.

대화식 프로그램과의 대화

다음 명령은 두 명령에 충분할 수 있습니다.

#!/usr/bin/expect -f
spawn sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
send "my-secret-password\n"

AppleScript 및 관리자 권한

다른 방법은 AppleScript의 do shell script 명령을 사용하는 것입니다. 이 명령은 관리자 권한으로 옵션을 제공합니다 . Apple의 기술 노트 2065 커버는 쉘 스크립트에 대해 자세히 설명합니다.

에코

이 문제에 대한 다른 일반적인 접근 방식 은 파이프 echosudo사용 하여 비밀번호를 전달 하는 데 사용 됩니다 . 이 StackOverflow 답변은 이것과 다른 관련 접근법, bash에서 하나를 묻는 명령에 암호를 제공하는 방법에 대해 설명합니다 .

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