오늘 사무실 MacOS를 El Capitan에서 Sierra로 업그레이드  했습니다.  Sierra에서는 Mac용 Siri를 사용할 수 있다는군요.  뭐 사무실 컴퓨터에는 어차피 마이크도 없고...  사무실에서 시리와 이야기 하느니 차라리 사무실 벽을보고 이야기 하겠다는 잡스러운 생각을 하면서 약 15분간의 업그레이드 시간을 기다렸습니다.

   업그레이드를 완료한 Sierra의 모습...은 아름다웠지만,  뭔가 거추장스럽고 끈적끈적한 증상이 기다리고 있었습니다.  바로 네트워크 윈도우 공유 폴더에 접근할때마다 사용자 이름과 암호를 매번 물어보는 증상이었는데요.  아래 그림처럼 말이죠...

네트워크 서버 암호 확인 창

 

그전  El Capitan까지만 해도 Apple Script 편집기로

1
mount volume "smb://192.168.0.2/Share" 
cs

와 같은 내용을 넣고 스크립트 실행파일을 만들어 주고 로그인 시에 시동되는 프로그램으로 등록해 주면,  /Volumes 폴더에 해당 마운트지점(/Volumes/Share)이 자동 생성되고 여기에 마운트가 가능했습니다.  물론 사용자 이름과 비밀번호는 처음 한 번 입력해 주면 키체인에 저장되어 다시 입력할 이유가 없었죠.  저처럼 로그인 자동실행까지는 아니어도 위와 같은 명령이나 GUI로 윈도우 공유폴더를 마운트 해 쓰시던 분들이 많을 겁니다.

    '왜 이러지?'하며 열심히 구글링을 해 보니, 애플 개발자 포럼인가 하는 커뮤니티에 이르기를...  '애플이 MacOS 10.12 Sierra부터 일반사용자의 /Volumes  마운트를 막는 정책을 써서 그런 현상이 있다'네요.  그 해결책(workaround)으로 '사용자의 홈폴더 밑에 마운트지점을 만들고 여기에 마운트를 해서 쓰라'는 권고를 해 주네요.

    하지만,  저는 소시적에 리눅스를 만지면서 수세리눅스 데스크톱 제 홈폴더에 네트워크 공유폴더를 마운트 해서 쓰다가...  나중에  홈폴더의 설정이 꼬여서 열받은 나머지 아래와 같은 명령어를 날린 적이 있습니다.

(아래 명령어는 절대로 아무 생각없이 복사해서 배시 셀에 붙여넣기 하고 엔터를 누르면 안됩니다!!!)

1
$ rm -rf ~/*
cs

   이런 짓을 하는 것은 남들의 경험담에서만 보는 건 줄로만 알고 있었는데... ㅠㅠ 그 후로 오랫동안 충격에서 헤어나지 못하다가,  공유폴더의 자료들을 어느  정도 다시 모은 후에는 리눅스의 시스템 쪽 폴더  (/mnt  랄지  /media  같은...)  아래에 제 마운트 포인트를 만들고 제 홈폴더 밑에는 마운트 포인트로 가는 소프트링크를 걸어  놓고 사용하는 것을 철칙으로 하게 되었습니다.  (이제는 제 사용자 계정으로 홈폴더에서 무슨 망나니같은 짓을 해도 최소한 소중한 자료가 모여 있는 네트워크 폴더들은 무사하도록  해 놓은 것이죠.

     MacOS도 예외일 수는 없습니다.  그동안에는 mount volume  옵션 명령으로 시스템 폴더인 /volumes폴더를 사용해 왔다면 이제는 굳이  (애플이 원하지 않는)  /Volumes 폴더를 마운트포인트로 쓸 것이 아니라, 홈폴더 쪽이 아니더라도 다른 폴더를 만들어서  제 목적을 달성하면 되겠지요.  그런데 Mac에서 쓸  일이 없는 폴더이름을 만들어야 겠습니다.  나중에 혼동되지 않으려면요...

    그래서 /Mount 라는 폴더를 한번 만들어 봅니다. 유닉스/리눅스에서라면 /mnt가 있는데, 맥에서는 현재 활성화되지 않아서 동일한 이름을 만들어 쓰면 될 것 같지만, 혹시 몰라서 이 이름은 피하는 게 좋을 것 같았습니다. 그 /Mount 폴더 아래에 제가 공유폴더로 쓰는  폴더들의 이름으로 하위폴더들을 만들어 줍니다.  그 중 하나의 이름이 'Share'라면 아래와 같겠지요. 한꺼번에 아래와 같이 만들어도 되겠네요. 터미널을 열고 아래와 같이 작업합니다.

1
$ sudo mkdir -p /Mount/Share
cs

그리고 ' Share'폴더의 소유권을 내 것으로 바꿔 줍니다.

1
sudo chown 내계정명:Staff /Mount/Share
cs


이제 홈폴더 밑에 소프트링트들을 저장할 폴더 하나를 만들어 줍니다.

1
$ mkdir ~/Netfolder
cs

Netfolder로 들어가서 위에서 만들어 놓은 'Share'폴더로 향하는 소프트 링크를 만들어 줍니다.  (제 경우는 /Volumes/Share 폴더로 향하던 소프트링크 파일을 삭제하고 새로 만들어야죠.)

1
$ ln -s ../../../Mount/Share Share
cs

이제 아래와 같은 명령어로 네트워크 공유폴더를 마운트합니다.

1
$ mount -t smbfs //사용자이름:비밀번호@서버주소/Share
cs

위에서 언급한 바와 같이 애플이 더  이상 시스템폴더 마운트포인트에 네트워크 공유 암호를 키체인에서 자동으로 불러 들이는 것을 허용하지 않기 때문에,  시스템폴더 쪽을 마운트포인트로 쓰면서도 사용자 이름과 암호를 계속 물어보는 현상을 해결하는 방법으로는 위와 같은 명령을 스크립트로 만들어서 쓸 수 밖에 없는 것 같습니다. 여기서 사용자이름과 비밀번호는 우리 네트워크 공유폴더의 사용자이름과 비밀번호입니다.

'Launchpad-기타'에 있는 '스크립트 편집기'를 실행합니다.

1
2
3
try
    do shell script "mount -t smbfs //사용자이름:비밀번호@서버주소/Share /Mount/Share"
end try
cs

라고 입력하고 이름을 'Mount Net Folder'로 바꿔 준 뒤 저장해 줍니다.

이 스크립트 파일을 실행파일로 전환해 주기 위해 상단 메뉴어서 '파일-보내기'를 선택합니다.

보내기 대화창이 열리면  아래 그림과 같이 '다음으로 보내기' 옆에 'Mount Net Folder'라는 이름을 확인하고 아랫쪽 '응용프로그램'  폴더를 저장폴더로 하고 '파일포멧'은  '응용프로그램'으로 선택해 주시고,  '실행전용'란에 체크표시해 주고 저장을 눌러 줍니다. 아래 그림을 참조하시면 되겠습니다.

애플스크립트 보내기 창의 확장

 

이제 응용프로그램 폴더에 우리가 만든 'Mount Net Folder' 앱이 생겼습니다.  이 녀석을 로그인 시 자동 실행되도록 해 봅시다.

바탕화면 아래 독에 '시스템 환경설정'을 엽니다.  '사용자 및 그룹'을 선택하시고  현재 사용자가 본인의 사용자 계정임을 확인하시고 오른쪽의 '로그인 항목'을 클릭합니다.

창 아랫쪽 자물쇠 버튼을  눌러 잠금 해제를 해준 후, '+'를 눌러 우리가 만들어 준 'Mount Net Folder' 앱을 등록시켜 줍니다.

이제 재부팅하여 네트워크 폴더가 사용자이름,  암호를  물어보지 않고 잘 마운트 되는지, 링크는  제대로 연결되어 있는지 확인합니다. 특별한 문제가 없다면 이제 부팅하여 로그인할 때마다 우리 네트워크폴더는 자동으로 마운트 될 것입니다.


참고

   암호에 특수문자 (e.g. &, #)가 포함되어 있는 경우  'URL Encoded Characters'로 변환해 주어야 정상적으로 마운트 됩니다.  예를 들어 암호가 123$56&8인 경우 아래와 같이 스크립트를 만들어 주어야 합니다.

1
2
3
try
    do shell script "mount -t smbfs //사용자이름:123%2456%268@서버주소/Share /Mount/Share"
end try
cs

Posted by truerain