2008. 9. 30. 03:31
2009년 3월 3일 현재 vsftpd-2.1.0 버전이 릴리즈 된 상태입니다. 이 버전에는 2.0.7버전까지 적용되었던 인코딩 패치가 적용되지 않습니다. 알아보는 중입니다...ㅜ

여러번 인터넷을 뒤져봤지만 잘 안나와서 포기했었는데, 결국 해냈다.

1. vsftpd 소스코드를 다운받는다.
  $ apt-get source vsftpd

2. 패치들을 적용시킨다.
  $ cd vsftpd-2.0.6  # 문서 만드는 당시의 ubuntu repository에 저장된 vsftpd 버전은 2.0.6이었음.
  $ gunzip ../vsftpd_2.0.6-1ubuntu1.diff.gz
  $ patch -i ../vsftpd_2.0.6-1ubuntu1.diff

3. 그 외에 필요할것 같은 4개의 패치들을 적당히 적용한다. (아마 이 단계는 안해도 될 것 같다.)
  $ patch -i xxx.patch # xxx는 보이는 .patch 파일 중 맘에 드는것들

4. sysdeputil.c 파일을 수정한다.
  다음 내용과 같은 파일을 sysdeputil.c.patch 로 만든 뒤
158c158
< #include <linux/unistd.h>
---
> #include <unistd.h>
162c162
< _syscall2(int, capset, cap_user_header_t, header, const cap_user_data_t, data)
---
> #define capset(head,data) syscall(__NR_capset,head,data)
  다음과 같은 명령을 내려준다.
  $ patch sysdeputil.c sysdeputil.c.patch

5. charset_filter 를 적용시킬 수 있게 해주는 패치를 다운받아 적용한다.
  $ wget "http://bugs.gentoo.org/attachment.cgi?id=157171" -O charset.patch
  $ patch -i charset.patch

6. 컴파일시 필요한 라이브러리들을 설치해준다.
  $ sudo apt-get install libwrap0-dev libssl-dev

7. make 실행
  $ make

8. 설치(make install이 잘 되지 않는다. 수동 설치)
  $ sudo install -m 755 vsftpd /usr/sbin/vsftpd
  $ sudo install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8
  $ sudo install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5

여기서 설치는 끝. charset_filter 를 적용하려면,
9. 설정파일을 열어 설정해준다.
  $ sudo vim /etc/vsftpd.conf
맨 밑줄이나 적당한 곳에
charset_filter_enable=yes
charset_client=cp949
charset_server=utf-8
인코딩은 알아서 할것.

이미 vsftpd가 설치된 상태에서 소스를 받아 갈아끼웠다.
/etc/init.d/vsftpd 스크립트를 만들어주는 부분은 찾기도 귀찮고 이미 되어 있었기 때문에 손은 대지 않았다.

!! 주의: man페이지를 보면 알겠지만, charset_filter 기능을 추가한 패치에서 이 기능을 켤 경우 보안상 위험할 수 있다고 한다. 아마 vsftpd에서 이 기능을 넣지 않는 것은 이런 문제 때문인 것 같다.

여튼 이 짓거리를 끝내면 윈도나 기타 OS에서 cp949 또는 euc-kr 인코딩으로 ftp에 접속할 수 있게 될 것이다.

참조페이지:

'리눅스 > Ubuntu' 카테고리의 다른 글

Ubuntu Netbook Remix  (1) 2009.06.15
포터블 우분투 넓게 쓰기  (3) 2009.04.06
vsftpd 에서 인코딩 설정해주기 in Ubuntu  (4) 2008.09.30
  • Favicon of http://peecky.tistory.com BlogIcon Peecky 2008.10.01 13:10

    오, 이런 방법이 있군요.
    저는 UTF-8 파일시스템에 강제로 파일명을 cp949로 저장해서 운영했는데-_-;;
    가끔 UTF-8로 다운로드 요청이 들어와서 파일을 못 받는 경우가 생기더군요.

    • Favicon of http://blog.gwangyi.kr BlogIcon gwangyi 2008.10.05 23:35

      아마 이 방법 쓰면 UTF-8 요청 들어올땐 그대로 처리할 거 같아요. 한글 자료를 아무리 뒤져봐도 안나와서 영어자료 뒤져서 겨우 찾았습니다ㅋ

  • nyamnyam 2009.02.22 19:07

    오.. vsftpd하고 인코딩 치니까 맨 위에 형 블로그 떴어요 역시 천재 ㅠㅠ

  • 나그네 2011.06.09 20:59

    아 해결했습니다. 감사합니다~~!!!