원도우와 다르게 맥에서는 일반 사용자 계정뿐만이 아니라 루트 계정으로도
루트 폴더에 폴더를 생성할 수 없습니다.

 

루트 폴더에서 폴더를 생성하려고 하면 아래와 같은 에러가 발생합니다.

>  mkdir test
mkdir: test: Read-only file system

 

심볼릭 링크를 만들려고 해도 마찬가지입니다.

> ln -s /Users/test test
ln: test: Read-only file system

 

맥OS의 기본적인 시스템 무결성 보호(SIP, System Integrity Protection) 정책 때문입니다.
OS구동에 필요한 시스템 관련 파일들과 폴더를 임의로 변경할 수 없게 막아놓은 것입니다.

 

이 문제를 해결하기 위한 방법은 두 가지입니다.

  1. SIP(시스템 무결성 보호) 해제
  2. 심벌릭 링크 생성

 

시스템 무결성 보호(SIP) 해제

 

  1. 리커버리 모두 진입 - 재부팅 후 Cmd + R 버튼을 누르고 있으면 리커버리 모드로 진입합니다.
  2. 터미널 실행 후 SIP 해제 명령 실행
    • > csrutil disabled
    • 실행 전에 > csrutil status 명령으로 현재 SIP상태를 확인할 수 있습니다.
  3. 재부팅
  4. 디렉토리 쓰기 설정

     

    > sudo mount -uw /        
  • 이 방법은 SIP정책을 무력화하는 방법이기 때문에 보안상, 필요할 때만 사용하고 다시 원상태로 돌려놓는 게 좋습니다.

 

심볼릭 링크 만들기

 

  1. /etc 폴더 밑에 synthetic.conf 파일을 생성합니다. root 계정으로 생성해야 합니다.

    > sudo vi /etc/synthetic.conf 
  2. 심볼릭 링크를 걸 폴더와 대상을 아래와 같이 작성합니다.

    ...
    ...
    test    /Users/ykjang/test
    ...
    ...

     

  3. 재부팅 -> 추가할 때마다 재부팅을 해야 해서 매우 번거롭습니다.
  4. 루트 폴더를 확인해 보면 심벌릭 링크가 만들어진 걸 확인할 수 있습니다.

 

윈도우 OS기준의 경로 정보로 세팅되어 있는 어플리케이션들은 경로가 루트로 되어 있는 경우가 있습니다.
매우 잘못된 구조이긴 하나, 현재 운영되고 있는 서비스라면 변경하는 게 어려운 상황일 수 있습니다.

 

맥에서 이런 어플리케이션의 개발환경을 동일하게 구성하려면
어쩔 수 없이 루트 폴더에 필요한 폴더를 생성해야 할 필요성이 생기는데,

 

그럴 때 활용하면 좋을 것 같습니다.

 

관련링크

https://derflounder.wordpress.com/2020/01/18/creating-root-level-directories-and-symbolic-links-on-macos-catalina/

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기