모래상자(Sandbox) |
모래상자 기법은 맥 OS X 10.7 라이언에서 도입된 보호 기술이다. 어플리케이션이 수행할 수 있는 능력을 제한해서 사용자에게 끼칠 위험을 줄여준다. 사용자가 명시적으로 연 파일만 어플리케이션이 접근할 수 있다. OS X 10.6 설범에서는 모래상자를 사용할 수 없다. 그래서 거기에서 어플리케이션은 사용자의 모든 파일에 완벽하게 접근할 수 있다.
SciTE는 제한적으로 권한을 부여한다. 그리고 OS X 10.7에서는 권한이 지정되지 않은 안전하지 않은 행위를 수행할 수 없다. 시스템 파일 열기 대화상자를 통하여 여는 경우에만 파일에 접근을 허용한다.
컴파일러와 개정 제어 시스템 같은 소프트웨어 개발 도구들은 보통 연관된 파일과 함께 작동한다. 예를 들어, C 프로그램은 #include 서술문을 통하여 헤더를 참조할 수 있다. 모래상자 환경에서 그 헤더 파일은 사용자가 열어주지 않는 한 읽을 수 없고 그래서 컴파일은 실패할 것이다.
열리지 않은 파일에 접근하기 위한 도구들을 활성화하기 위해, SciTE는 Allow Access 명령어를 File 메뉴에 제공한다. 다음과 같은 대화상자를 보여준다:
디렉토리에 파일에 접근을 허용하려면 Add Path… 버튼을 눌러서 시스템 대화상자를 보여준 다음 원하는 파일이나 디렉토리를 선택하면 된다. 이 대화상자는 허가된 컴포넌트이므로, SciTE는 이를 통하여 시스템을 항해하고 권한을 설정할 수 있다.
접근 경로는 SciTE를 수행하는 사이에 기억된다. 앞으로 실행되지 못하도록 접근 경로를 제거하려면 제거 버튼을 사용하자.
이 특징을 사용하는 여러 가지 방법이 있다: 파일과 디렉토리를 다른 사람과 공유할 때 가장 쉬운 방법은 기존의 파일에 경로를 설정하는 것이다. 또다른 방법은 필요한 파일과 디렉토리를 한 곳에 모은 다음 SciTE에게만 그 위치에 접근하도록 허용하는 것이다.
머큐리얼이나 깃같은 개정 제어 시스템을 사용할 때, 프로젝트의 루트 디렉토리는 시스템이 작동하기 위하여 접근을 허용해야 한다. 접근을 허용해야 할 필요가 있는 다른 디렉토리들은 실행 파일과 보안 키가 있는 위치이다. 위의 찰칵그림에서, "/usr/local/bin" 디렉토리에 접근을 허용하고 있는데 거기에 "hg" 실행 파일이 저장되어 있기 때문이다. "~/.ssh" 디렉토리도 접근을 허용하는데 그 안에 공유 저장소와 변경을 동기화할 때 사용되는 키 파일이 들어 있기 때문이다.
SciTE는 시스템 쉘로 배시를 사용하여 명령 줄 도구를 실행한다. SciTE는 ~/.bashrc 파일을 읽을 수 있다. 이를 먼저 실행한 다음 명령어들을 실행한다. 이 파일은 처음에는 모래 상자가 숨기기 때문에, SciTE가 이 파일을 실행하기를 바란다면, Allow Access 명령어를 통하여 접근을 허용해 주어야 한다.
OS X의 파일 검역소는 사용자가 파일을 내려 받을 때 잠재적인 위협을 경고하기 위하여 맨 처음 도입되었다. 확장 속성으로 "com.apple.quarantine"를 파일에 추가한다. 이전 버전의 SciTE는 검역 속성이 설정되어 있지 않으면 파일을 만들 수 없었다. 따라서 SciTE에서 컴파일된 프로그램을 쉽게 실행할 수 없었다. 이 문제는 3.3.2 버전에서 com.apple.security.files.user-selected.executable 권한을 추가함으로써 해결되었다.
OS X 10.9 Mavericks에서, Clang C++ 컴파일러 같은 시스템 도구는 모래상자 안에서 실행되지 않는다. 이 도구들은 'xcrun'으로 포장되어 있다. 서로 다른 도구와의 사슬들 사이에 선택할 수 있도록 하기 위해서이다. xcrun 프로그램은 모래상자 안에서 실행되지 않는다. 대신에 "xcrun: error: cannot be used within an App Sandbox"와 같은 메시지를 보여줄 것이다. 다른 컴파일러들을 내려 받아 지역적으로 빌드할 수 있겠지만, 링커와 어셈블러 같은 다른 시스템 도구들과 함께 실행되어야 하기 때문에, 문제를 일으킬 가능성이 여전히 높다.
현재로는 이 문제에 대한 해결책이 없다. 그래서 터미널 세션에서 컴파일 해야 한다.
일반적으로 TeX를 OS X에 설치하려면, ~/.bashrc, /usr/local/texlive, 그리고 TeX 파일에 들어 있는 디렉토리에 접근 권한을 부여해야 한다. /usr/texbin 디렉토리를 ~/.bashrc의 PATH에 추가해야 한다. 다음과 같이 정의할 수 있다:
export PATH=$PATH:/usr/texbin
SciTE에 주어진 권한은 인쇄하기, 네트워크 클라이언트로 작동하기, USB 포트와 직렬 포트에 접근하기, 사용자가 선택한 파일을 읽고 쓰기, 검역 속성 없이 실행파일 만들기, 그리고 사용자가 선택한 파일에 대한 접근 경로를 세션 사이에 기억하기가 있다.
여러분의 프로젝트에 다른 권한이 필요하면 scite-support @ scintilla.org로 저자에게 연락을 주시면 앞으로 SciTE 배포본에 포함하는 것을 고려해 보겠다.