MAC OS X 의 기본 ftpd 사용

새로산 맥미니를 ftp 서버로 쓰고자
Mac OS에 기본으로 포함되어 있는 Lukemftpd 를 활용 하기로하고 삽질 시작..
기능이 좀더 좋고 간편하게 구축이 가능한 Pureftp manager 도 있으나 한글을 사용하기 위해선
재컴파일하는 삽질을 해야만 한다.

우선 Lukemftpd를 사용가능하게 하기위해선 ‘시스템 환경설정 > 공유’ 에서
아래 그림처럼 파일공유를 체크 하고 ‘옵션’에서 ‘FTP를 사용하여 파일 및 폴더공유’를 체크해 줍니다.
아래 계정 체크박스들은 SMB 공유를 위한 계정으로 FTP와는 상관없는 계정설정입니다.

 
 
이렇게 하면 Ftp 데몬이 실행되는데 ftp로 사용할 계정을 만들어 주어야 합니다.
pure ftpd와 같은 3rd party 프로그램들은 시스템 계정이 아닌 virtual 계정으로 관리할 수 있으나, OS X에 기본 포함된 Lukemftpd는 시스템 계정을 요구합니다.

시스템 환경설정 > 졔정에서 새로운 계정을 만들어줍니다.
‘공유만 가능’으로 만들어주고 만든 계정의 마우스 오른쪽 클릭으로 ‘고급 옵션’ 에서
아래 그림과 같이 로그인 쉘은 /sbin/nologin으로
홈디렉토리는 Ftp root로 사용할 디렉토리를 지정해 주시면 됩니다.




위에서 만든 계정을 ftp 전용으로 사용가능하게 하려면 터미널창을 실행하시고

sudo -s
passowrd:
echo /sbin/nologin >> /etc/shells

특히 주의하셔야 할 것이 맨 아래 줄 “>>” 입니다. 하나를 쓰게 된다면 시스템이 망가지게 되니 반드시 두개를 쓰셔야 합니다. pico나 nano, vi등을 이용하실 줄 아신다면 마지막줄에 “/sbin/nologin”을 넣어주시면 됩니다. cat /etc/shells 로 내용을 확인해 봅니다.

여기까지 설정하면 ftp 접속과 사용이 가능합니다.
그러나, 사용자들이  홈디렉토리는 벗어나 상위 디렉토리를 접근하지 못하도록 하는 설정이 필요합니다.

sudo -s
password:
echo seokom >> /etc/ftpchroot  
— ( seokom은 새로 만든 계정 이름입니다 )

이제 다 된거 같은데 … 
Windows 머신에서 ftp 접속하면 한글이 표시 되지 않습니다.
친절하게도 누군가가 패치해 놓은 ftpd 데몬 실행 파일이 있네요..


1330551943.xxx
패치를 하기위해  ‘ftpd’파일을 다운로드 받습니다.
맨위에서 ‘공유;설정에서 ftp 사용 체크를 해제하여 ftpd 를 중지시킵니다.

터미널을 실행 후, /usr/libexec/ftpd를 다른이름으로 바꿔주고,
위에서 받은 파일을 /usr/libexe/디렉토리에 복사를 합니다.

sudo su – “패스워드는 현재 계정의 패스워드를 입력하시면 됩니다~”
cd /usr/libexec/
mv ftpd ftpd-origin
cp /Users/본인계정/Download/ftpd .


(간단하게는 cp라고 타이핑 후 바탕화면에 다운받은 ftpd 파일을 드래그해서 터미널창에 드롭시키면 경로 에 파일명까지 자동입력이 됩니다, 제일 뒤에 점은 잊지마세요;)


‘ftpd’ 파일에 권한을 줍니다.
chown root:wheel /ftpd
chmod 555 ftpd


‘ftp.plist’ 파일을 수정합니다
/System/Library/LaunchDaemons/ftp.plist 파일을 찾아
<key>ProgramArguments</key> “이 부분을 찾아서 아래와 같이 수정을 합니다“


<array>
<string>/usr/libexec/ftpd</string>
<string>-l</string>
<string>-E</string>
<string>EUCKR</string>
<string>-c</string>
<string>/etc</string>
</array>


시스템환경 설정>공유> 옵션 에서ftp 공유를 체크하여 ftpd를 시작합니다. 

* SnowLeopard에서도 마찬가지 과정을 수행하시면 됩니다.
  Leopard에서 업그레이드로 설치하신 경우엔 ftpd 파일 복사와 plist 수정만 하면 되더군요

대화에 참여

댓글 1개

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.