본문 바로가기

ETC

Mac OS /home 디렉토리 사용기(결국사용안함)

[Mac OS 버전 Catalina 10.15.7]

 

결론부터 말하자면 mac os에서는 /home을 사용않기로함.

 

server를 ubuntu로 자주 사용한다.(aws, vagrant, vm…) 

mac os에서의 환경과 ubuntu 개발 및 필요한 라이브러리, 모듈 등 환경을 맞추어 linux로 올릴 시 디렉토리 내 참조하는 파일 및 덤프하거나 덤프한 데이터를 불러오거나 등의 작업을 할 때 동일한 디렉토리명에서 작업을 하면 좋겠다고 생각했다.

 

그래서 ‘/home/hackyu/작업명디렉토리’ 와 같이 mac에서 작업하고 그대로 ubuntu 서버의 /home/hackyu에서 사용할 수 있으면 좋겠다라고 생각했다.

 

하지만, Mac os는 기본적으로 /home 디렉토리는 실제 /System/Volumes/Data/home 디렉토리의 symbolic link로 되어 있는 것으로 확인 되었다.

 

그래서 /home 디렉토리를 사용하기 위해 

root 계정으로 /etc/auto_master 내 /home -nobrowse, hide from finder 라인 주석처리를 하였다.

그럼 / 디렉토리 내 home은 사라지고, /System/Volumes/Data/home에 접근은 가능하다.

 

하지만, 나는 mac os에서 /home에 hackyu 디렉토리를 만들어서 사용하고 싶은 것이 목적이기에 /에서 mkdir로 디렉토리를 만들기를 시도하였지만, 

 

mkdir: home: Read-only file system

 

위와 같이 실패하였다. 더 찾아보니 SIP(System Integrity Protection) apple 자체에서 만든 것으로 시스템 내부 무결성을 위해 SIP가 기본적으로 활성화가 되어 있는 것을 확인하였다.

 

 

 

조금 더 구글링을 해보니 SIP 설정 enable, disable에 대해서는 Sierra 버전 이전이후로 조금 차이가 있는 것으로 확인할 수 있다.

참고영상 : www.youtube.com/watch?v=IYpMtnhqZZQ

 

Sierra 10.12.2 이전 

재부팅 시 cmd + R 눌러주어 복구모드로 들어가 왼쪽 상단 유틸리티 -> terminal csrutil disable(해제) 또는 csrutil enable 이후 재부팅하면 된다고 확인할 수 있다.

 

 

Sierra 10.12.2 이후

Terminal

 

$sudo csrutil clear

or

$sudo /usr/bin/csrutil clear

 

 

하지만... 애플 자체에서 internal로 SIP를 해놓은 부분을 굳이 건드려서 사용할 필요가 없다고 판단하였다. (혹시 모를 시스템 상 꼬일 수도 있다고 생각함… 쫄보^^)

 

결국에는 mac이랑, ubuntu에서의 작업할 특정 디렉토리를 정하고 작업하기로 했다.

 

Ex) 

1) /tmp 디렉토리에서 작업

해결해야할일: 기본적으로 /tmp에서 작업을 하고, 로그아웃 이후 삭제됨. /tmp에서 작업한 내용이 삭제되지 않도록 해야함.

 

2) mac에서 작업한 내용 중 소스코드 내 절대경로 등 경로를 서버 환경과 동일하게 수정

mac에서는 /Users/[유저명]에서 작업 후 작업 내용 내 서버 작업 디렉터리 경로로 모두 변경해야 하는 부분이 까다로울 수 있음.

 

3) Server에서 사용할 디렉토리와 동일하게 mac os에서 작업하기

 

+ 생각해보니 이렇게 해도 좋을거 같아서 추가한다.

4)  vagrant를 사용하여 서버와 동일한 환경의 vagrant vm 경로에 host 디렉토리를 공유하여 작업

(실제 파일은 local에 있지만, 테스트는 서버와 동일한 환경을 로컬 내 vm에서 사용할 수 있으니 좋은것 같다.)