20100419 :: 궁극의 폴더 동기화 유틸리티 – DirSync Pro

리눅스에서도 쓸만한 폴더 동기화 유틸리티

딱 작년 이 맘 때 쯤 매우 유용한 폴더 동기화 유틸리티인 Allways Sync에 대한 글을 쓴 적이 있습니다. 리눅스로 넘어온 이후에 가장 아쉽고 미련이 남던 프로그램 중 하나였는데요, 물론 리눅스에도 rsync와 같은 간편한 프로그램이 있긴 합니다만 삼바를 통한 공유폴더로의 설정이 안된다든지 하는 문제점이 있습니다. (생각해보니 안될 것도 없다는 생각도 드네요)

지금의 사용환경

지금의 사용환경은 처음 Allways를 쓸 때 보다는 조금 더 변했습니다. 그때는 노트북, 데스크톱이 모두 윈도 시스템이었는데 지금은 노트북, 데스크톱이 모두 리눅스 (데스크톱은 가끔 윈도)이며, 각종 자료들은 PC에 저장하지 않고 별도의 외부 파일 공유 서버에 차곡차곡 저장하고 있습니다.

따라서 다음과 같은 기능을 지원해야 하는 유틸리티가 필요했습니다.

  1. 윈도, 리눅스에서 모두 돌아간다. 윈도는 Allways가 있으니 최소 리눅스에서는 돌아가야 한다.
  2. 양방향 동기화를 지원하고 가능하면 Allways 수준의 설정을 지원한다.
  3. GUI가 있으면 좋다. (rsync는 별도의 front-end가 있습니다만, 사실 명령줄 프로그램입니다.)
  4. 네트워크 드라이브를 지원해야한다. 특히 삼바 공유를 지원해줘야 한다.

DirSync Pro

그래서 뭐 괜찮은 프로그램 없나하고 여기 저기 뒤져보던 중에 DirSync Pro라는 프로그램을 발견했습니다. Pro라는 단어가 들어있긴 합니다만 상용 소프트웨어가 아니라 오픈소스 프로젝트입니다. 일단 사용기능이나 사용기한 등에 제약이 없고, 회사에서 써도 괜찮습니다! 게다가 제가 찾던 기능들은 모두 망라되어 있군요. 아래는 이 프로그램이 자랑하는 feature입니다.

  • 파워풀한 싱크 알고리듬(?)
  • 양방향 동기화와 단방향 동기화를 모두 지원함
  • 양방향 동기화에 대한 다양한 세부 옵션 지원
  • 동기화 할 수 있는 폴더 수에 제한이 없음
  • 하위 디렉터리를 포함하여 재귀적인 (recursively) 동기화가 가능함
  • 거의 제한이 없는 파일 시스템 지원 (FAT, FAT16, FAT32, NTFS, WinFS, UDF, EXT2, EXT3, EXT4 …)
  • 네트워크 드라이브 지원 (올레!)
  • 마운트된 외부 장치 지원 (외장하드, USB 등)
  • 싱크 기능을 통한 차등 백업 가능
  • 동기화 하기 전 최대 50개 까지의 백업 생성 가능
  • 리눅스 파일 시스템의 심볼릭 링크 처리 지원
  • 동기화한 파일의 타임 스탬프 변경 지원 (원본을 동기화한 후 동기화 시점으로 최종 수정 시간을 변경하여 최신 버전임을 명시)
  • 깔끔하고 쉬운 인터페이스 (논란의 소지가 있지만, 동기화유틸을 써본 사람은 쉽게 사용이 가능합니다)
  • 거의 대부분의 OS 지원 (윈도 계열, 맥OS, 리눅스)
  • 별도의 설치가 필요없음. 태생이 포터블 버전임
  • 오픈소스. 무료. 사용기간, 사용량에 제한이 없음 (올레!)
  • 별도의 로컬 데이터베이스를 필요로하지 않음.
  • 기록되는 로그 레벨을 설정을 통해 변경할 수 있음

하나 하나 써내려가면서 마음이 뿌듯해지는 기능들이 아닐 수 없습니다. 그럼 한 번 설치를 해 보겠습니다.

설치

사용환경 :

  • Ubuntu 10.04 b2
  • & Windows XP SP3
  • 파일 공유 서버는 삼바. (윈도, 리눅스에서 접근하는데 별도의 설정이나 제한은 없음)

설치전 요구 사항 : 이 프로그램은 자바로 만들어져 있습니다. 그래서 실행에는 Java Runtime Environment가 필요합니다. 우분투에는 기본적으로 OpenJava가 설치되어 있으니 별도로 설치할 필요는 없습니다.(제 경우엔 윈도에서도 freemind를 사용하느라 이미 설치했음. ㅋ) 설치를 위해서는 다운로드 페이지에서 플랫폼에 맞는 파일을 내려받은 다음, 원하는 폴더에 압축을 풀어 놓으면 됩니다. 리눅스 버전의 경우 실행파일의 이름은 dirsyncpro.sh입니다. 이 파일을 실행가능하도록 권한을 변경해 줄 필요는 있지요.

$ chmod +x dirsyncpro.sh

이제 파일 탐색기에서 해당 파일을 더블 클릭하면 프로그램이 실행됩니다. 최초 실행시에는 라이센스에 동의하겠느냐는 대화 상자가 한 번 표시됩니다. 동의해주고 바로 넘어가면 다음과 같은 화면을 볼 수 있습니다. (이하 스크린샷은 윈도 버전에서 찍었습니다. 리눅스는 이게 불편해서…)

설정을 위해서는 세 번째 탭인 ‘Dir Settins’를 선택합니다. (위 스샷의 마우스 포인터가 있는 부분)  디렉터리 세팅에서는 동기화 프로필을 생성할 수 있고, 프로필마다 각각 다른 폴더를 지정하여 동기화를 할 수 있습니다. 프로필 설정 방법을 간략히 살펴보면 다음과 같습니다.

  1. 프로필 이름을 지정합니다. (뭐 기본이죠)
  2. 폴더 A, 폴더 B를 선택합니다. (원본과 사본이 될 곳들입니다.)
  3. 동기화 방향을 지정합니다. A>B,  A<B의 일방 동기화 및 A<>B의 양방향 동기화가 가능합니다.
  4. 동기화 옵션은 디폴트로 사용해도 무방합니다만, 별도의 세팅이 필요한 경우 동기화 옵션을 변경합니다. (동기화 옵션 변경에 대한 내용은 뒤에서 다시 다루겠습니다.)

이 때, 리눅스에서는 삼바 공유가 디렉터리 선택 목록에서 표시되지 않습니다. 노틸러스를 통해 마운트한 삼바 공유 폴더는 숨김 속성을 가지므로 목록에서 표시가 되지 않더군요. 이 경우에 저는 아래와 같이 해당 폴더에 대한 심볼릭 링크를 만들어 해결 했습니다.

  • 노틸러스를 통해 삼바 공유 폴더를 마운트 합니다. (smb://아이디@서버주소/공유폴더이름) 이 때 패스워드가 걸린 경우에는 패스워드를 입력해 줍니다.
  • 이렇게 공유한 폴더는 홈 디렉터리 아래에 ./gvfs/공유이름으로 마운트 됩니다.
  • 그래서 $ ln -s ~/.gvfs/공유이름 심볼릭링크이름 과 같이 명령을 주어 홈 디렉터리에 해당 폴더로의 심볼릭 링크를 생성해서, 디렉터리 란에 심볼릭 링크의 경로를 적어주었습니다. (혹은 아이콘을 눌러 선택해도 됨)
    * 생각해보니 이 방법이면 rsync도 삼바 공유를 지원하지 않을까 싶긴 합니다.

윈도에서는 공유폴더에 \\공유.서버.아이피.주소\공유폴더\경로명 과 같은 형태로 접근하므로, 원격 폴더의 이름을 그대로 사용했습니다. 그리고 동기화 버튼은 양방향을 선택했지요. 그리고 특정 폴더는 동기화에서 제외하기 위해 ‘방송’ 폴더는 제외 폴더에 등록하였습니다. (이렇게 하면 ‘방송’이라는 폴더와 그 하위 폴더, 파일이 모두 동기화에서 제외됩니다.)

그런 후 Analyze 버튼을 클릭하면 아래 스크린 샷처럼 분석 결과가 표시됩니다.

이제 play 모양처럼 생긴 Sync 버튼을 클릭해 주면 왔다 갔다 파일의 복사가 진행됩니다. 만약 같은 이름의 파일이 위치한다면 설정에 따라 가장 최근에 변경된 파일이 살아 남도록 합니다. (설정에 따라서는 용량이 가장 큰 파일을 남겨두거나 이름을 바꾸어 두 개의 파일을 모두 남겨둘 수도 있습니다.)

그리하여 저는 노트북 — 공유서버 — 데스크톱의 순으로 연결하여 그간 수동으로 동기화 할 엄두를 못 내던 폴더들을 지금 동기화하고 있습니다. 근 몇 달에 걸친 사항들이 백업되는 과정을 지켜보노라니, 흐뭇하기 그지 없네요.

20100418 :: 공기인형 (2010)

보나마나 시시한 이야기

공기인형을 알게 된 계기는 World’s End Girlfriend의 새 앨범이 공기인형 OST라는 소식을 들은 것이 시작이었고, 주말 사이에 짬을 내어 보게되었지요. 개봉관이 별로 없어서 멀리까지 다녀왔습니다만 안 봤다면 많이 후회했을 것 같네요. 혹시 이 영화를 볼 계획이 있으신 분은 아래 주의 사항을 먼저 눈여겨 보실 필요가 있습니다.

  1. 19세 이상 관람가에, 주인공이 ‘성인용품’이라는 설정이지만 야한 장면은 그리 나오지 않습니다.
  2. 하지만 여자친구와 보러 갈 생각이 있는 남자분들은 혼자 가거나, DVD 출시나 어둠의 경로를 통하시는 게 나을 듯 하네요. 배두나양이 정말 예쁘게 나옵니다.
  3. 물론 19금 답게(?) 배두나양의 노출씬 분량은 상당히 많습니다. 야하다기 보다는 몸이 정말 예쁩니다. 그러니까 절대로 여자친구랑은 보러가지 마세요.

당신의 마음에 관한 이야기

뭐 보도자료들도 워낙 많이 배포된 상태에서 이 정도까지는 스포일러가 아니겠지 싶어서 조금 소개합니다. 주인공의 이름은 ‘노조미’입니다. 노조미는 공기 인형이에요. 공기 인형은 공기 놀이 같은 거 할 때 쓰는 인형은 아니고 앞에서도 밝혔다시피 ‘성인용품’입니다. 아마 제 기억이 맞다면 ‘이나중 탁구부’에 자주 출연하던 그 ‘와이프’가 그런 종류일거에요. 영화는 공기 인형인 노조미가 어느 날 막무가내로 마음을 갖게 되면서 일어나는 이야기를 담고 있습니다. 어둡고 칙칙한 골방에 틀어박혀 있던 그녀가 창밖으로 보이는 반짝거리는 풍경에 반해 외출을 시도하면서 사람을 만나고 사랑을 느끼게 되는 그런 이야기에요.

물론 포스터에도 나와 있지만 무척이나 아름다운 영화입니다. 멜로라곤 하지만 멜로로 분류하기에는 좀 석연치 않은 구석이 많기는 해요. 이 영화는 사람의 마음을 갖고 사람이 되고 싶어하는 피노키오 동화의 성인 버전이라기보다는 사람의 마음, 특히 당신의 마음에 대해 읊조리는 감독의 ‘시’와 같은 느낌이 강합니다.

사람의 마음을 가진 공기 인형. 그것은 태생부터가 ‘타인의 대용품’ , ‘욕망의 배설구’와 같이 어긋난 운명을 타고 났으니 슬픈 이야기가 될 수 밖에 없어요. 하지만 중요한 건 예쁘고 따뜻한 마음을 가진 공기 인형이 사람을 닮아가는 과정이 아니라, 그 공기 인형 자체가 우리네 마음을 그대로 반영-상징도 아니고 그대로 반영하고 있어요-한다는 점이 꽤나 진부하면서도 정곡을 찌르는 느낌이에요. 감독은 너무나 서정적인 음악과 예쁜 화면, 예쁜 배우를 통해 동화처럼 이야기를 꾸몄지만, 마치 우격다짐과 같이 막무가내로 노조미에게 마음이 생겨났다…는 식으로 말하는 것과 같이 도시에 사는 우리네 마음이 공기 인형과 같다는 말을 던지고 있습니다.

당신은 마음을 가졌나요?

겉은 번지르르하게 허세를 부리지만, 속은 텅 비어있는 노조미는 우리 네 마음 그 자체인 것이지요. 우리는 같이 속이 비어있는 타인의 마음을 이해할 수도 없고 심지어는 자기 자신이나 혹은 자신과 타인이 하는 말들의 의미조차 잘 알지 못해요. 그래서 노조미처럼 남을 이해하지 못하고 돌이킬 수 없는 상처를 다른 사람에게 주기도 합니다. 그저 겉만 번지르르 하고 반짝거리는 것을 좋아할 뿐이지 우리는 늘 타인과 마음을 나누는 교감을 하기 보다는 자신이 어떤 누군가의 대용품은 아닐까 저어하고, 또 못난 우리는 자기 스스로가 노조미라는 건 깨닫지 못하고 다른 사람을 노조미같이 대하기도 하니까요.

트위터니 웹2.0을 들먹이며 교감과 소통을 이야기하는 요즘이지만, 오히려 마음과 마음의 단절은 그 골이 점점 더 깊어져가는 건 아닐까요? 마음 속 깊은 곳의 이야기를 할 수 있는 가까운 친구들은 점점 줄어가고, 되려 그런 이야기를 아무도 아는 사람없는 익명의 네트워크에 하는 것이 더 편하게 느껴지는 것처럼 말이에요.

비록 그렇게 바람 빠지면 아무 것도 남지 않을 마음이라도, 따뜻한 온기가 남은 사람이라면 그래도 이 영화를 꼭 볼 것을 추천합니다. 허세와 공허, 그리고 단절된 마음에 대한 이야기가 그리 마음 편하게 와닿을 수는 없겠지만 그렇다고 놓쳐버리기에 이 영화는 너무도 따뜻하고 반짝거리는 예쁜 조약돌 같은 느낌입니다. 거기에는 배두나양의 빛나는 연기와 빛나는 외모가 크게 작용한다는 점은 절대 부인할 수 없습니다. (영화를 보다가 ‘아!’하고 감탄이나 이런 거 자기도 모르게 하게 될지도 모릅니다. 단단히 긴장하고 보러가시길 바랍니다.) 어쨌거나 반짝반짝 빛나는 눈매의 두나양과 함께 잠시 시간을 보내고 여러분 마음 속의 노조미에게 약간의 온기를 불어 넣어주는 경험은 아깝지만은 않을 거라 확신합니다.

사족

  • WEG의 전작에 수록된 River Is Filled With Stories가 삽입되어 있습니다. 영화의 분위기와 잘 어울립니다. ‘생명은’이라는 시(원래 있는 시인지는 모르겠네요)와 같이 흘러 나오는데 유튜브에 나레이션과 함께 흘러나오는 영상이 하나 있습니다. 나레이션은 배두나양의 목소리입니다.
  • 역할이 역할인 만큼 배두나양의 일본어 대사량은 그리 많지 않습니다만, 그닥 이질감이 들지는 않습니다. 인형이라는 설정을 떠나서 상당히 자연스럽게 들리네요.
  • 노조미는 중간에 손목에 상처를 입습니다. 묘한 동질감을 느끼게 되더군요.
  • 다시 한 번 말하지만 배두나양이 정말정말 예쁘게 나옵니다. 하지만 전 역시 박진희 누나가 짱입니다. 진리의 박진희! (하지만 이번 주에 친정 엄마 보러가지 못해서 미안해요 ;ㅁ;)

20100410 :: 이따 읽어야지, Read It Later

온라인 북마크 동기화 서비스로는 뭐 이미 Xmarks(foxmarks)가 짱먹어도 되는 듯한 분위기입니다.  OS플랫폼이나 브라우저에 무관하게 편리한 동기화가 가능하다 보니 애용할 수 밖에 없지요. 물론 아직 버그도 좀 있는 듯 합니다. 삭제한 북마크가 귀신같이 되살아나는 문제가 좀 있긴 한데, 어쨌거나 저는 매우 유용하게 잘 쓰고 있습니다.

한 번 가봤던 사이트 혹은 웹페이지를 북마크 하는 것은 주로 나중에 다시 들러보기 위한 목적입니다. 그런데 구글 같은 경우만 해도 검색 결과에 별표를 매길 수 있는 기능이 있기 때문에 어지간히 괜찮은 곳은 북마크를 할 필요성을 못느끼게 됩니다. 게다가 어떤 곳들은 ‘지금 당장 읽기가 귀찮을 뿐’이라는 이유로 나중에 한 번 정도 더 읽어보고 마는 곳도 있기 때문이지요. 저도 북마크의 경우에는 부지런히 태깅도 하고 분류도 합니다만, 주로 사용하는 사이트는 북마크 바에 올려 놓고 쓰고 있고 그 외의 기타 북마크들은 거의 들여다 보지는 않게 됩니다. 물론 자주는 아니지만 두고 두고 찾아보는 사이트의 경우에는 파이어폭스의 주소창 자동완성에서 쉽게 찾을 수 있다보니 그럴 가치는 충분하다고 봅니다.

하지만 500여개가 넘어가는 제 북마크들도 많은 부분이 이제는 더 이상 가보지 않아도 좋은 (그래서 단순히 정리하기가 귀찮아서 두고 있는) 곳들인 경우가 많지요. 흔히 블로그의 단일 포스트나 신문 기사 같은 곳은 북마크 하기에는 조금 아쉽고 또 그냥 지나치기에도 섭섭한 그런게 있는 법이거든요.

아무튼 이런 사용자들의 needs에 들어맞는 서비스가 있으니 바로 ‘Read It Later’라는 서비스입니다. 말 그대로, 따로 표시를 해 두었다가 나중에 해당 페이지를 쉽게 찾아 읽을 수 있도록 하는 기능을 제공합니다. 파이어폭스의 경우에는 addon을 제공하고 있고 추가 기능 설치가 귀찮은 사람들을 위해 북마클릿도 함께 제공하고 있습니다.

Read It Later

물론 이 서비스는 특정 페이지를 마크하기 위한 북마클릿도 있어야 하고 마크 해 놓은 페이지의 목록을 볼 수 있는 북마클릿도 필요하기 때문에 북마클릿을 덕지 덕지 붙이는 게 싫어서 전 addon으로 설치했습니다. addon을 설치한 경우에는 주소 표시줄에 ‘>’ 요런 아이콘이 생기는데, 나중에 다시 읽어봐야 겠다 하는 페이지들은 해당 리본 아이콘을 클릭해주면 됩니다.

재밌는 점은 addon으로 설치하고 계정을 생성하는 경우에는 마크한 정보들이 온라인을 통해 동기화 된다는 점입니다. 게다가 마크하는 페이지들도 리스트를 통해 관리할 수 있는 듯 하네요.

이쯤되면 온라인에 북마크를 통합/저장하는 것과 뭐가 다를까 싶은 생각도 듭니다. 그래도 마크한 기록을 빠르게 검색하여 찾을 수 있고, 주석을 추가하는 등의 작업이 가능한 기능 등 여러 페이지를 참고해서 글을 써야 하는 블로거에는 꽤나 유용한 서비스임에는 분명해 보이네요.

아쉽게도 아직 크롬용 정식 확장은 나오지 않은 듯 합니다. 물론 별도의 서드 파티 확장은 존재합니다만, 이 경우에는 readItLater 계정을 통한 온라인 동기화를 지원하지 않는다고 하네요.

20100410:: KISA 김희정 원장님께 문의 드립니다.

MT뉴스 – 김희정 KISA 원장 “공인인증서가 가장 안전”

기사 내용의 일부를 요약/인용하는 것이 저작권을 얼마나 침해하는 지는 모르기도 하고, 역시 좀 귀찮기도 해서 그냥 위의 저 기사를 한 번 읽고 오시기를 권합니다.

KISA가 예전부터 참 어이없는 말을 많이 뿜어대던 곳이라, 그저 그려려니 하고 넘어가려 했는데 지난 3월 25일 있었던 공인인증서 관련 토론회도 그렇고 이번 김원장님의 어이없는 발언 문제도 그렇고 뭐랄까 KISA에서 일하시는 분들께는 죄송하지만, 그래도 그 내부에서 영향력 있다는 분들에 한해서는 보안에 대한 개념 자체가 없는 것은 아닐까하는 의구심마저 들어서 하는 이야기입니다. 사실, 국민의 권익을 보호해야할 의무가 있는 단체에서 아무런 근거도 없는 주장을 어떤 이유에서 펼치는지 그게 너무나 궁금하기 때문입니다.

그래서, 얼마전 KISA 김희정 원장님이 언론을 통해 한 이야기에 대해 몇 가지 반문을 제기하고자 합니다. 본 포스팅은 김희정 원장님이 직접 운영하시는 것으로 보이는 네이버 블로그에 트랙백을 걸고 트위터로도 연락 드리겠습니다. 하고 싶은 이야기가 많지만, 부연 설명을 덧붙이는 것은 쓰는 것도 읽는 것도 시간 낭비 일 것 같아서 본론으로 들어가겠습니다. 질문은 주제에 따라 대분류와 소분류로 나누겠습니다. 부디 작은 분류의 질문에 먼저 답하시고 다음 상위 분류의 질문의 답으로 정리하여 답변 주셨으면 합니다.

1. 부인 방지가 무엇입니까?

1) 원장님은 기사에서 “부인 방지는 은행 거래를 할 때 상대방도 송금을 받았다는 것을 인증해 주는 것”이라고 하셨습니다. 만약, 상대방이 인터넷 뱅킹을 아예하지 않거나, 송금을 한 대상 계좌가 휴면 계좌인 경우에는 상대방이 송금 받았다는 사실을 어떻게 인증하나요?

2) 만약, 원장님이 말씀하신 것이 ‘돈이 중간에 어디론가 사라지지 않고 잘 도착했음을 증명하는 것’이었다면 돈이 한 곳에서 다른 한 곳으로 이체되었다면 시스템적으로는 해당 금액이 속한 계좌가 바뀌었지만 중간에 돈이 소실되거나 불어나지 않았다는 것을 관리하는 것입니다. 하지만 이 것은 은행의 내부 시스템이 보장해야지 왜 이런 데 공인 인증서가 필요한 것인가요?

2. 현행 공인 인증서 제도가 과연 공인 인증서 덕분에 ‘부인 방지’를 한다고 생각하십니까?

3) 비루한 네티즌인 제가 해석하기에 ‘부인 방지’는 특정 금융 거래가 이루어진 후 “이 거래는 니가 한 게 맞으니 나중에 딴소리 하지 말 것”이라는 것을 증명하는 것입니다. 그러기에 해당 거래의 당사자가 내가 맞는지 아닌 지를 증명할 무언가가 필요하고, 나의 신원을 전자적으로 증명해주는 수단으로 공인인증서를 사용하는 것일 테니까요. 그렇다면 현재의 공인인증서 방식은 첫째로 은행이나 쇼핑몰이 아닌 제3의 사이트로부터 특정인의 아이디와 패스워드를 알아내기가 어렵지 않고, 둘째로 공인 인증서 파일이 모든 PC마다 동일한 위치에 설치되어 있어(C:\Program Files\NPKI) 간단한 방법으로 취득 혹은 웹하드/이메일에 이를 보관하는 사람도 많아, 해킹 등을 통해서도 취득이 가능하며, 셋째로 공인인증서의 패스워드를 기타 포털 등에서 사용하는 사용자가 대다수를 차지함을 감안할 때, 악의적인 공격자는 인증서 파일을 입수하고 패스워드만 알고 있다면 특정인의 신분을 완전히 취득할 수 있다는 것입니다. 이런 경우 과연 공인 인증서가 ‘부인 방지’ 기능을 한다고 생각하십니까?

4) 아니면 “부인 방지”라는 것은 이 경우에 공인 인증서를 신뢰하기에 성립하는 것입니까? 아니면 패스워드를  해당 당사자만이 알고 있다는 전제 때문에 성립하는 것입니까?

3. SSL+OTP 가 공인인증서보다 취약한 보안 수단임은 어떻게 증명하실 수 있나요?

SSL은 공개키와 비밀키라는 두 개의 키를 통해 암호화와 복호화를 하는 암호화 통신 방법입니다. 여기서 ‘공개키’는 서버와 클라이언트가 나누어 가지게 되고, 공개키를 통해 암호화한 데이터는 해당 교신의 당사자가 미리 인증한 비밀키를 통해 복호화하게 됩니다. 따라서 서로가 상대방을 인증한 상태라면 안전한 통신이 가능합니다. 이는 교신 방식에 대해서는 현재 플러그인으로 제공되고 있는 암호화 통신과 사실 상 다를 것이 없습니다.

5) 그렇다면 고작 사용자의 신원 정보 (id 와 패스워드)을 전송할 때만 암호화하는 현행의 방식이 안전한가요, 교신의 모든 내용을 암호화하는 https 통신 방식이 더 안전한가요? 제가 거래하고 있는 ‘ㅇ’은행은 한 번의 암호화 교신이 끝나고 나서 계좌 조회 등을 할 때는 해당 페이지를 http 프로토콜을 통해 암호화 하지 않고 내려 보내고 있습니다. 그 페이지 속에도 충분히 소중한 제 개인정보가 들어있는데, 누군가가 그런 정보를 중간에서 가로채어 도청할 수 있다는 사실이 너무나 찜찜하고 불안합니다.

6) OTP는 물리적인 별도 장치를 통해 실시간으로 변하는 1회용 패스워드를 사용하는 방식입니다. 즉 거래 혹은 교신에 필요한 보호 수단을 직접적인 통신에 의존하지 않는 장치를 도입하여 안전성을 높이고자 하는 보조 수단입니다. 이는 원천적으로 복제가 불가능하고 무작위로 키를 맞추고자하는 시도가 시간 제한이라는 벽에 부딪히기 때문에 보호의 강도를 높일 수 있는 장점도 있습니다. 게다가 가장 중요한 것은 “OTP가 없어지면 분실 혹은 유출의 위험을 사용자가 실제로 감지할 수 있다”는 것입니다. OTP를 분실한 사용자는 해당 기기의 분실 신고를 통해 추후 발생할 지 모를 피해를 사전에 예방할 수 있는 기회가 한 번 더 주어지는 것지요. 자 그렇다면 특정한 고정된 위치에 전자적으로 보관되어 누군가 복사해가도 그 사실을 알 수 없는 공인인증서와 OTP 중에서 굳이 비교하자면 어느 쪽이 소비자를 보호하는데 조금이라도 더 도움이 된다고 생각하십니까?

4.  정작 더 큰 구멍은 ‘플러그인이라는 배포 방식’에서 온다는 의견은 어떻게 생각하십니까?

7) 현재 은행에서 사용되는 온갖 보안 모듈들은 십분 양보하여 그 프로그램 자체의 효과를 완전히 신뢰할 수 있다고 가정하더라도, 윈도우 기반의 IE에서만 사용이 가능한 ActiveX를 사용해야 합니다. ActiveX를 사용자의 컴퓨터에 설치하려면 사용자는 시스템 전체에 대해 관리자 권한 (최고 권한)을 가지고 있어야 합니다. 그리고 ActiveX를 싫어하는 모든 이가 주장하듯이, 문제는 ActiveX 자체에 있는 것이 아니라 이런 ActiveX를 무조건 ‘예’를 눌러서 설치하라고 교육하는 모든 은행, 쇼핑몰, 공공기관 홈페이지 등에 있다는 것입니다. 그러나 인터넷 익스플로러는 물론이고 파이어폭스, 구글 크롬, 오페라 등 국내에서 어지간히 사용되고 있는 거의 모든 웹 브라우저들은 이러한 플러그인 없이도 자체적으로 인증서를 소프트웨어적인 보안 토큰에 저장하고, 이에 접근하여 암호화 통신을 할 수 있도록 만들어져 있습니다. 현행 공인인증서를 통해 굳게 걸어 잠근 문 옆으로 큰 구멍으로 물이 새는 지금의 상황이 더 보안이 좋다고 보십니까? 아니면 사용자들이 웹 페이지가 사용자 시스템에 어떤 해로운 짓도 못하도록 거부하며, 적극적으로 KISA가 추구하는 국민의 권익 실현에 동참하는 표준 규격이 좋다고 보십니까?

8) 표준 규격의 보안 통신을 통한 인증과 암호화 교신은 저와 같이 리눅스를 사용하고, 윈도 환경에서도 파이어폭스를 주로 사용하는 ActiveX를 별로 만날 일이 없는 비루한 자들도 21세기적 문명의 혜택인 사이버 거래를 사용할 수 있게 합니다. 제가 개인적으로 윈도를 사용하지 않는 이유는 안타깝게도 OS 소프트웨어를 살 돈도 없기 때문입니다. 단지 OS 살 돈 몇 만원(인지 십 몇 만원인지는 모르겠습니다만)이 없는 불쌍한 사람들이 문명의 혜택을 못 받는 작금의 사태가 OECD 국가에서 벌어지는 사태에 대해서는 어떻게 생각하시는지요? 아니면 제게 윈도 라이센스 하나 선물 하실 의향은 없으신지 그것도 아울러 여쭈어 봅니다.

5. 공인인증서를 고집하는 것 보다 전 국민 대상으로 보안 교육 프로그램을 시행하실 생각은 없으신가요?

들리는 소문에 의하면 KISA에서 무료 백신 배포를 계획하신다는 이야기도 들립니다. 듣던 중 반가운 소식입니다. 그런데 문제는 안티바이러스들이 (‘백신’은 특정한 보안 업체의 상표명이므로 안티바이러스라는 표현을 사용하겠습니다.) 아무리 뛰어나다고 한 들, 더 중요한 것은 윈도 보안 패치입니다. 혹시 원장님께서도 모니터 오른쪽 하단을 가끔 주시하시는지 모르겠습니다만, 윈도는 자동 업데이트 기능이 있으며, 중요한 보안 패치나 기타 패치들이 발표되면 모니터 오른쪽 하단 시계가 있는 곳 즈음에 노란 방패 표시가 나타납니다. 그런데 제 주위에 많은 친구들은 이게 뭔지도 모르고 클릭해 볼 생각 조차 못하고 있다는 것입니다.

MS는 몇 년에 한 번씩 기존의 취약점 패치를 모두 모아모아 서비스팩이라는 이름으로 발표합니다. 그런데 우리 나라 언론들은 이상하게도 이런 서비스팩이 발표되면 호들갑을 떨면서 마치 대재앙이 오는 것처럼 나팔을 불어 댑니다. 네이버 지식인 같은 곳만 가도 ‘뭐가 안되면 서비스팩을 깔아서 그런거에요… 그걸 지우려면…’ 이런 위험하기 그지 없는 이야기들이 돌아다닙니다.

9) 전국민의 컴퓨터에 안티바이러스와 같은 보안 솔루션이 설치되는 것은 좋습니다. 하지만 전국민의 컴퓨터가 최신의 보안 패치를 통해 단순한 바이러스나 웜이 아닌 다른 악의적인 공격에 어느 정도 기초 면역력을 가질 수 있도록 교육하는 것은 어떨까요? KISA 홈페이지 구석탱이 조그만 배너나 혹은 홍보 예산 조금 쓰시거나 네이버와 같이 좋은 뜻이니까 이런 캠페인 한 번 벌이시는 것도 좋을 것으로 생각합니다. 위에서 말씀드린 ‘노란 방패’는 윈도XP 서비스팩 2때부터 적용되었습니다만, 여태까지 저는 저런 캠페인 한 번 본 적이 없어서 무지하게 안타까운 심정입니다.

드리고 싶은 말씀도 많고 묻고 싶은 것도 많지만 너무 길어서 이만 줄입니다. 바쁘신 와중에 긴 글 읽어주셔서 감사합니다. 답변 기다리도록 하겠습니다.

20100404 :: 심볼릭 링크에 대하여

리눅스를 쓰게 되면서 가장 많이 접하는 단어 중의 하나가 바로 ‘심볼릭 링크’라는 말이죠. 복사하기 귀찮거나 그러면 그냥 심볼릭 링크를 만들면 된다는 이야기는 참 많이 들었던 것 같습니다. 대충 앞뒤 상황을 보아하니 윈도의 ‘바로가기(shortcut)’와 같은 개념인 듯 합니다만… 그렇게 대충 알고 지내다가 오늘은 ‘하드 링크’라는 걸 또 알게 되어…. 아… 링크면 링크지 심볼릭은 뭐고 하드 링크는 또 뭐다냐…

윈도의 바로가기와 차이점

리눅스에서의 링크는 윈도의 ‘바로가기’와 비슷하면서도 또 많이 다릅니다. 정확하게는 ‘데이터 혹은 파일의 실체가 아닌 그 곳에 다다르는 통로’라는 개념으로 이해하면 되는데, 실제적으로는 이게 ‘바로가기’와 다를 바가 없다는 거죠. 차이가 있다면 ‘바로가기’는 결국 윈도의 파일 탐색기가 제공하는 경로 데이터 파일임에 반해, 링크는 리눅스의 파일 시스템 자체가 제공하는 기능이라는 이랄까요? 즉 무슨 말인고 하니 윈도 탐색기에서 어떤 프로그램이나 디렉터리의 바로가기를 바탕화면에 생성했다고 하면, 윈도의 바탕화면 폴더에는 해당 바로가기의 ‘파일’이 생성됩니다. 그리고 이 파일 안에는 어떤 아이콘을 표시해야하고, 가리키고 있는 대상의 경로는 무엇인지 따위의 정보가 기록되는 거죠. 우리는 실제로 이 바로가기 파일을 편집해서 참조하는 위치를 바꿀 수도 있어요. 그런데 리눅스에서 어떤 디렉터리에서 링크를 생성하면, 해당 디렉터리에는 목표지점(target)의 이름만이 생성됩니다. 만약 그 대상이 어떤 텍스트 파일이라 하고 cat somelink 라는 명령을 준다면, 링크의 내용이 아닌 목표 지점인 텍스트 파일의 내용이 그대로 출력된다는 이야기입니다. 한마디로 말해, 리눅스의 링크는 그 실체가 없다고 할까요.해당 링크에 접근하는 것은 원본 파일에 접근하는 것일 뿐, 링크 그 자체를 손볼 수 있는 방법은 없는 것처럼 보입니다.

그리고 또 재밌는 것은 링크를 통해 특정 지점에 접근하더라도, 사용자가 바라보는 경로는 마치 링크가 실제로 존재하는 것처럼 보인다는 것입니다. 아니 방금 전까지만 해도 리눅스의 링크는 실체가 없다고 해 놓고서는 무슨 소리냐고 할 수 있는데 사실은 이런거죠.

결국 파일 시스템 내의 어떤 지점이 여러 곳에서 여러 개의 이름을 갖는 것과 똑같다고 생각하면 됩니다. 너무 추상적이라 예를 들자면, 만약 /some/path/source 라는 디렉터리가 존재해서, /usr/local/links 라는 디렉터리에서 해당 지점으로 링크를 만들었다고 합시다. 링크의 이름은 타이핑하기 귀찮으니 s 로 하구요. 그래서 links 디렉터리에서 s로 이동한다면

/usr/local/links$ cd s
/usr/local/links/s$ ls

{실제로 /some/path/source 에 들어있는 파일 리스트가 쫙 뿌려집니다.}

이렇게 됩니다. 즉 링크는 목표지점을 완전히 직접적으로 연결하는 장치이고, 이를 통해 접근하는 경우 사용자는 원본의 경로로 직접 접근하는 것과 ‘아무런 차이점이 없이’ 특정 경로를 바로 액세스하는 효과를 누릴 수 있게되는 것이죠. 사실 이것은 좀 혼란스럽게 느껴질 수 있지만, 단일 자원의 무분별한 중복(복사본으로 넘쳐나는 불행!)을 방지하고 또한 변경 사항이 생기는 경우 모든 것이 동기화되는 개념이기 때문에 (왜냐면 원본은 하나 밖에 없으니까) 상당히 효율적이고 멋진 기능이라 할 수 있다.

하드 링크와 심볼릭 링크

그럼 이제 하드링크와 심볼릭 링크의 차이점에 대해 살펴보겠습니다. 먼저 보통 ‘링크’라고 이야기하면 일반적으로는 심볼릭 링크를 이야기하는 듯 합니다. 하드 링크는 하드 링크라고 별도로 명시하는 듯 하네요. 심볼릭 링크는 말 그대로 이름으로만 존재하는 링크에요. 만약 어떤 파일에 대해 다른 위치에서 심볼릭 링크를 만들었다고 하면, 해당 심볼릭 링크는 파일의 경로+파일이름과 완전히 동일하게 취급됩니다. 마치 링크가 존재하는 그 디렉토리에 텍스트 파일이 있는 것과 똑같은 효과가 있지요.(실제로도 그렇습니다. 링크는 원본 파일이 가진 파일 이름과 같이 또  다른 ‘이름’이니까요) 이 때 원본 파일을 에디터로 수정한 다음, 링크를 통해 해당 파일의 내용을 들여다보면 당연히 수정된 내용이 반영되어 보입니다. 만약 vi와 같은 에디터를 통해 링크를 수정한다면, 그것은 결국 ‘링크의 이름을 가진 원본 텍스트 파일’을 수정하는 것이므로 나중에 원본을 확인해보면 수정된 내용이 반영되어 있기도 하구요. 우리는 그저 “똑같은 파일이 요기잉네”와 같이 취급하면 됩니다.

여기까지는 어려울 것이 없어요. 그럼 하드 링크는 어떻게 동작할까요? 하드링크의 동작도 마찬가지 입니다. 링크를 만들어서 마치 해당 디렉터리에 파일이 위치하는 것처럼 액세스 할 수 있지요. 원본을 수정하면 링크를 통해 확인한 내용이 즉시 바뀐 것을 볼 수 있는 것도 똑같습니다. 그런데 만약, 원본을 지워버리면 어떻게 될까요? 하드 링크의 경우, 원본을 지우더라도 링크를 통해 확인해보면 해당 파일이 그대로 존재하는 것처럼 보입니다. 어이쿠야. 하드링크는 원본이 삭제되더라도 그 내용이 없어지지 않는다는 것이지요. 중요한 것은 원본이 삭제되기 전까지는 하드링크는 일반적인 링크의 역할만 하게 되지만 원본이 지워지게되면 하드 링크는 복사본의 역할을 수행하게 됩니다. 사실 이러한 동작은 거꾸로 특정 파일이 삭제될 때 실제로 파일 시스템 내에서 소멸되지 않고 어딘가에 숨어있으며, 그 위치는 여전히 하드 링크들에 의해 접근이 가능해진다는 이야기가 됩니다. 이건 대용량의 동영상 파일이나 iso 파일로 실험해 볼 수도 있어요. 수 백 메가바이트짜리 대용량 파일에 대해 링크를 생성하더라도 파일 시스템의 사용량은 거의 변화가 없습니다. 단순히 이름만 더 생겼단 의미겠지요. 그런데 원본을 삭제해도 역시 변화가 없다. 변화가 발생하는 것은 원본을 삭제한 후 하드 링크를 (두 개 이상의 하드링크가 존재했다면 모두 다)삭제하였을 때 그렇게 됩니다.

하드 링크 자체는 원본과 동기화된 파일이라고 생각해도 무방하기 때문에 ls -al를 통해 데이터의 유형을 살폈을 때도 그냥 파일과 다름없습니다만, 심볼릭 링크는 l이라고 당당히 링크의 신분을 밝힙니다.

심볼릭 링크는 원래 위치만을 참조하기 때문에 원본을 삭제하면 해당 링크는 그저 허공을 가리킬 뿐, 해당 파일이나 디렉터리가 없다는 에러 메시지를 뿜어내게 됩니다. 이것이 하드 링크와 심볼릭 링크의 차이점입니다. 아, 이제야 왜 하드링크와 소프트링크가 아닌 하드 링크와 심볼릭 링크의 차이점을 알 수 있겠네요. 그것은 ‘소프트링크’라고 쓰면 ‘소프트드링크’처럼 들리기 때문입니다!

링크 만들기

링크를 만드는 명령은 ln입니다. 이 명령은 다음과 같이 사용됩니다.

  1. ln {타겟의 위치} [링크의 이름]
  2. ln -s {타겟의 위치} [링크의 이름]

1번 방법은 하드 링크를 생성합니다. 링크 이름을 별도로 주지 않으면 원본과 같은 이름의 링크가 생성됩니다. 2번처럼 -s 옵션을 주면 심볼릭 링크가 생성됩니다. 역시 링크 이름을 주지 않으면 원본과 같은 이름으로 링크가 생성됩니다. 하드 링크는 원본의 변화나 삭제시 기존 데이터를 보존하는 역할을 합니다. 그것과 관련되어 조금 복잡한 사연을 가지고 있어서 디렉터리 자체는 하드 링크의 생성이 불가능합니다. 파일만 가능하지요. 하지만 심볼릭 링크는 파일이나 디렉터리 모두에 사용될 수 있습니다.

정리. 그리고 하드링크까지 한번에 삭제하기

이렇게 살펴보고 나니 링크라는 게 대단한 건줄 알았는데 별거 아니었구나 하는 생각이 듭니다. 그런데 여기서 한 가지 의문이 드는데, 만약에 어떤 파일이 하드 링크를 여러 곳에 두고 있다면 그 파일을 지운다 한들 실질적으로는 파일시스템 내에 다른 이름으로 살아남아있을 확률이 크다는 이야기입니다. 결국 특정 파일을 완전히 삭제하고 싶다면 참조하고 있는 모든 링크를 찾아보아야 한다는 이야긴데, 특정한 파일을 참조하는 하드 링크를 찾는 방법을 알아보야겠지요?

특정 파일에 대한 하드 링크를 검색하는 것은 결국 ‘똑같은 파일에 대한 다른 이름’을 찾는 것이므로 find 명령의 -samefile 옵션을 사용하면 됩니다. 예를 들면 다음과 같겠지요.

$ find /home -samefile file_that_has_many_hardlinks.mp3

그리고 이들을 한 번에 지워버리고 싶다면 다음과 같은 명령을 사용합니다.

$ find /home -samefile file_that_has_many_hardlinks.mp3 | xargs rm

(xargs는 표준입력으로 받은 항목들을 나누어 뒤에 이어지는 명령에 인수로 넘기는 역할을 한다고 합니다.)

오늘은 여기까지입니다. 이틀 연속 외박을 할 순 없으니까, 이제 집에 가야겠어요. 요즘 일교차가 유난히 큰 듯 한데, 다들 감기 조심하세요. 여러분 안녕~