2010-07-03 10 views
4

GUI 컨트롤에 wxPython을 사용하는 OS X Python 응용 프로그램이 있습니다. 네트워크 서비스를 시작하기 전에 사용자에게 관리 권한 (Objective-C의 권한 서비스 API 사용과 비슷한)을 묻는 메시지가 표시됩니다.Mac OS X Python GUI 관리자 프롬프트

내가 찾은 가장 가까운 라이브러리는 Bob Ippolito의 Authorization library이지만 상당히 오래된 버전이며 Snow Leopard (OS X 10.6.4/Python 2.6.4)와의 호환성 문제가 있습니다.

제 임시 해결책은 관리자 권한으로 파이썬 응용 프로그램을 실행하지만 상당히 불안정한 Objective-C 실행 프로그램을 만드는 것입니다.

도움 주셔서 감사합니다.

답변

2

관리자 권한으로 전체 스크립트를 실행하려면 Platypus을 사용하는 기본 Mac OS X 응용 프로그램으로 만들 수 있습니다.

1

당신은 여기에 게시 다른 질문에 대한 답변을 확인 할 수 있습니다 : 당신이 상승 된 권한을 요청 실행하는 데 필요한 단지 쉘 명령의 경우 What kind of API should I use to elevate user privilege to super-user in a Mac OS X?

+0

찾을 수있는 Python 바인딩이 없지만 찾고있는 것을 달성하기 위해 ctypes와 launchd (8)를 사용할 수 있다고 생각합니다. 감사! –

+0

그게 내 인상이야. :) – EOL

5

을, 당신은이 작업을 수행 할 수 있습니다

os.system("""osascript -e 'do shell script "<commands go here>" " with administrator privileges'""") 

그러면 AppleScript 인터프리터에서 쉘 명령을 실행하고 사용자에게 계정 자격 증명을 입력하라는 메시지를 표시합니다. 효과적으로 sudo를 사용하여 명령을 실행합니다.

예를 들어 명령 내에서 재미있는 이스케이프 인용 부호가 있습니다.

os.system("""osascript -e 'do shell script "mkdir -m 0775 -p \\"%s\\" " with administrator privileges'"""%d) 

희망 하시겠습니까?

+1

사용자가 암호를 한 번만 입력하면됩니다. 이 중 몇 가지가있는 경우 사용자는 전화 할 때마다 비밀번호를 입력해야합니다. – Parker