2012-02-15 3 views
0

커맨드 라인 도구를 쓰고 있습니다. 거기에/Users/user_name/Library 디렉토리에 디렉토리를 만들고 싶습니다. 그 프로그램을 터미널에서 루트로 실행하면 모든 것이 정상이지만 문제는 그 도구를 컵의 백엔드로 사용할 때입니다 (그 프로그램은 루트로도 인쇄됩니다). 프로그램이 호출되었지만 system.log 파일에서 다음 오류를 발견했습니다. sandboxd : deny file-write- *. 필자는 새로운 Mac OS X 프로그래머이며 어떻게 수정해야할지 모르겠습니다. 아무도 나 도와 줄 수 없어?Mac OS X 앱 샌드 박스 문제

답변

0

Snow Leopard cups은 사용자의 집 액세스와 같이 오작동을 방지하는 샌드 박스에서 실행되므로 OS X 버전에 따라 사용자의 집이 아닌 다른 디렉토리를 사용하여 도망 갈 수 있습니다. 라이온은 그보다 훨씬 더 제한적입니다. 샌드 박스 규칙은 컵 바이너리 (sb 스크립트와 반대)에 내장되어 있으므로 행운을 빌어 컵을 샌드 박스에서 필요한 항목에 대한 액세스를 허용하는 버전으로 대체 할 수 있습니다 (실제로 원하는 경우, 규칙은 cupsdCreateProfile (cups/scheduler/process.c)으로 정의됩니다. AFAICT 샌드 박스는 수행하려는 작업을 정확하게 방지하기 위해 응용 프로그램에서 수행 할 수있는 작업이 없습니다.

또 다른 대안은 컵을 루트로 실행하는 경우입니다. 샌드 박스는 컵이 루트로 실행될 때만 사용되기 때문입니다.

+0

자신 만의 .app 묶음도 쓸 수 없습니다 !! – Vassilis