하늘빛 블로그

생각하라! 질러라! 삽질하라!

UTF-8 환경의 리눅스에서 SAMBA 한글 인코딩 문제 해결 방법

최신 버전의 리눅스들은 대체로 UTF-8 환경으로 설정되어 있습니다. 그래서 리눅스를 기반으로 구동하는 웹서버들도 대체로 그쪽으로 가고 있습니다. 저같은 경우엔 웹서버로 워드프레스 블로그를 운영하고 있는데, 외산 툴이라 UTF-8에 최적화 되어있는 것 같습니다. 아마 따로 설정을 해주면 EUC-KR 환경에서도 사용할 수 있겠지만, 저는 처음부터 리눅스와 mysql을 모두 UTF-8로 설정해서 쓰고 있습니다.

그런데 윈도는 아직 그렇지 못한 모양입니다. 다른 건 유니코드를 지원하니 문제가 없지만, 아직 파일시스템은 EUC-KR인 모양입니다. 그래서 아무 설정 없이 SAMBA를 통해 서버의 하드디스크를 연결하면 윈도 컴퓨터에서는 한글 폴더/파일명이 깨져서 나옵니다. 이를 해결하자고 SAMBA의 인코딩을 바꿔버리면, 이번엔 서버에서 SSH터미널로 접속했을 때 파일명이 깨져서 나옵니다.

어차피 NAS대용으로 쓸 경우엔 윈도 시스템에서만 사용할 테니까 서버 쪽에서 어떻게 보이든지 상관 없긴 합니다. 하지만 제 경우에는 웹서버와 함꼐 토렌트 프로그램도 돌릴 때가 있는데, 다운로드 받은 파일들의 한글 이름이 윈도 시스템 쪽에서는 깨져 보인다는 것이 문제입니다. 이것은 토렌트 프로그램이 파일명을 UTF-8로 저장하기 때문으로 보입니다.(그게 시스템 설정을 따랐기 때문인지 원래 그런 건지는 잘 모르겠습니다.)

찾아보니 이 경우에도 방법이 있었습니다. dos 문자셋과 유닉스 문자셋을 구분해서 저장하게 하는 식으로 해결할 수 있었습니다. 이렇게 되면 윈도에서는 EUC-KR로 보이고, 저장은 UTF-8로 되니까 어디에서나 모두 제대로 보입니다.

  1. nano /etc/samba/smb.conf를 입력하여 SAMBA 설정파일을 엽니다.
  2. 설정파일의 [global]이라고 써진 곳 아래에 다음과 같이 입력합니다.(혹은 붙여 넣습니다.)
    dos charset = cp949
    display charset = UTF8
    unix charset = UTF8
  3. 설정파일을 저장하고 service samba restart를 입력하여 SAMBA 데몬을 재시작합니다.

이제 윈도에서나 서버에서나 파일명이 깨지지 않고 잘 보일 것입니다. 서버에서 파일명이 제대로 보이니까, 권한변경과 같은 작업도 문제 없이 진행할 수 있습니다.

CC BY-NC 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.