본문 바로가기

카테고리 없음

Shell에서 확인할 수 없는 개발자 프로그램의 실행

인터넷에서 다운로드한 프로그램을 Mac에서 실행하려고 할 때 확인되지 않는 개발자가 배포한 앱이라는 메시지와 함께 실행이 거부되는 경우가 있습니다. 프로그램의 의도는 악성 프로그램을 실행하지 않게 하여 컴퓨터를 보호하기 위함이지만 때로는 OS에서만 모를 뿐 나는 알고 있기 때문에 실행해도 무방한 프로그램들도 있기 마련입니다.

이런 경고 메시지가 뜨면서 실행이 거부된다.

이런 경우의 해결책은 대부분 어디에서 앱을 받던 실행하게 하는 보안상의 옵션을 변경하도록 유도하고 있습니다. 이 경우 1. 프로그램을 실행할 때마다 옵션을 변경하는 번거로운 작업을 하거나 2. 옵션을 꺼두어서 항상 보안의 위험에 노출되어 있어야 하는 상황에 처하게 됩니다. 두 가지 경우 중 어느 쪽도 반갑지 않기 때문에 다른 방법을 찾아보기로 했습니다.

zsh에서는 ls의 옵션으로 @를 지정하면 보다 많은 정보를 제공해주는데, 실행이 거부된 파일의 경우 com.apple.quarantine 이라는 속성이 추가되어 있는 것을 확인할 수 있습니다.

권한의 마지막에 @표시가 된 파일의 실행이 불가능합니다.

com.apple.quarantine 속성은 xaddr -d com.apple.quarantine filename 명령어로 삭제가 가능합니다. 디렉토리에 포함된 전체 파일에 대해 속성을 삭제하고 싶다면 xaddr -d -r com.apple.quarantine dirname 을 입력하면 전체 디렉토리 내의 파일에 대해 해당 속성을 제거할 수 있습니다.

com.apple.quarantine 속성이 모두 제거됐습니다.

이제 정상적으로 프로그램을 실행할 수 있습니다.

 

 

반응형