모인모인의 ACL 기능 :: 2006/03/29 09:50

위키사용하기를 매우 즐겨하는 나로서는 위키엔진들의 각종 기능들에 매우 관심이 많다. TWiki에 처음 사용되었고, 모인모인에도 1.3이후로 도입된 ACL(Access Control Lists) 기능은 2% 목말랐던 위키위키의 페이지편집 권한기능에 대한 다양한 활용 방법을 제공한다. 소그룹을 위한 위키추천을 보고, 혹시나 모르시는 분들을 위해, 간단히 기능을 설명하면,

TestPage라는 페이지 상단에

#acl SomeUser:read,write All:read

라고 적으면, TestPage 페이지는 SomeUser에게는 읽고 쓰기가, 모두에게는 읽기만 가능한 상태가 된다. ":" 을 중심으로, 왼쪽에 사용자, 그룹등을 지정하고, 오른쪽에 권한을 지정한다. 권한은 ","로 구분하여 여러 권한들을 복수로 지정해 줄 수 있으며, 이와 같은 설정을 " "(스페이스) 로 구분하여 여러개 이상 부여할 수 있다. 중요한 점은 read 권한이 부여되지 않은 사용자에게는 해당 페이지를 볼 수 없을 뿐만아니라, RecentChanges, TitleIndex, 각종 검색결과에도 나타나지 않는다는 것이다.

사용자부분에는 로그인아이디이외에 다음과 같은 이름들이 사용가능하다.
1. Trusted : 모든 인증된 사용자
2. Known : 모든 등록된 사용자
3. All : 위키에 접근하는 모든 사용자
4. SomeGroup : Group으로 끝나는 페이지이름에 목록으로 표시한 사용자들 그룹 -- page_group_regex로 설정가능

권한에는 다음과 같은 것들이 있다.
1. read : 읽기권한
2. write : 편집권한
3. delete : 삭제권한
4. revert : 이전버전문서로 되돌림권한
5. admin : ACL 편집권한

이렇게 사용자별 권한들이 있다면 디폴트를 어떻게 정하느냐가 관건이 된다. 디폴트를 정하는 방법은 config.py에서 아래 항목을 수정한다.
1. acl_rights_default : #acl 라인이 정의되지 않은 페이지들에 대한 기본 권한설정
2. acl_rights_before : #acl 라인이 정의되어 있더라도, 그 전에 먼저 부여하는 설정

참고로, BioinfoWiki의 설정은 아래와 같다.

acl_rights_before = u"yong27:read,write,delete,revert,admin"
acl_rights_default = u"Trusted:read,write,delete,revert,admin All:read"

사이트 관리자인 나(yong27)는 모든 페이지에 대해 모든 권한을 갖기 위해 before 에 위처럼 설정했다. #acl 라인이 정의된 페이지들이 있더라도, before는 먼저 지정되는 것이므로, 항상 모든 권한을 갖는다. 그리고, default에 #acl 라인이 정의되지 않은 대부분의 페이지들은 인증된 사용자들에게 대부분의 권한을 주고, 로봇에 의한 스팸성 글쓰기를 막기 위해 All에게는 read권한만을 주었다. (아쉬운부분. write를 주고싶은데, 예전에 스팸봇에 의해 매우 많은 페이지들이 피해를 입었었다.)

간단히 설명한다고 한것이 꽤나 길어졌다. 처음 이 기능을 봤을 때, 괜히 복잡하며, 직관적이지 않아 보이는 듯 했으나, 익숙해지니 위키위키의 대중성을 한단계 업그레이드 한 기능이라 여겨진다. 위키위키의 철학과 맞지 않는 면이 없잖아 있지만, 정보 중에는 보여지지 않아야할 것들도 있다는 점을 생각해볼 때, 필요한 기능임은 분명하다. 이 서버에는 BioinfoWiki 이외에 개인위키도 따로 존재했으나, acl 기능을 쓴 이후로, 개인위키의 비밀페이지들을 이리로 옮겼다. (아무래도, 기존 문서와의 편한 링크를 위해서는 하나의 위키에 있는 편이 좋다.)

몇가지 이 기능을 이용한 팁이 있다면,
1. 개인용 이력서를 위키에 공개하기가 꺼려진다. 그래서 비밀페이지로 만들고, 항시 갱신한다. 이력서를 보여주고 싶은 사람이 생기면, guest 사용자 계정을 알려주고는 guest 사용자에게 read 권한을 부여한다.
2. 한참 작성중인 문서가 있다. 중간 작성과정이 보여지기가 싫다. 완성된 이후에 공개되었으면 좋겠다 싶은 문서는 나만 볼 수 있도록 설정한다. 혹시라도, 조언을 부탁하고 싶은 사람이 있으면 그 사람에게 read,write권한을 부여한뒤 알려준다.

소개된 기능 이외에 권한설정앞에 (+,-)를 표시한다던가, 그룹을 지정한다던가, 각종 추가 설정에 대한 이 이상의 이야기들은 모인모인에서 제공하는 도움말 페이지를 참고하시길.
Trackback Address :: http://yong27.biohackers.net/trackback/195
  • BlogIcon yy | 2006/03/29 10:19 | PERMALINK | EDIT/DEL | REPLY

    설명 감사합니다. ^^ 모니위키보다는 확실히 편하군요. 저도 위키를 분리해서 써보니 잘 가지 않게되더라구요. 한가지만 더 여쭤보자면, 모니위키 -> 모인모인으로 데이터를 옮기는 과정이 불편하지는 않으셨나요?

  • BlogIcon yong27 | 2006/03/29 10:27 | PERMALINK | EDIT/DEL | REPLY

    http://biohackers.net/wiki/MoinMoin 페이지에 노스모크모인모인에서 모인모인1.3 으로 옮기는데 사용한 스크립트가 있습니다. 페이지 저장방식이 파일에서 디렉토리로 바뀌였고, 3000여 페이지들을 일일이 바꿀 수 없어서 만들었습니다.

    맞아요... 위키가 나뉘어지면 잘 안가게 되죠.

  • 김병진 | 2007/01/28 12:47 | PERMALINK | EDIT/DEL | REPLY

    좋은 정보 감사합니다. 그런데 혹시 download에 대한 제한이 acl 상으로 가능하지는 않은지요. 파일을 업로드한 후에 아무나 받으면 곤란한게 있어서요.

    • BlogIcon yong27 | 2007/01/28 18:24 | PERMALINK | EDIT/DEL

      물론 가능합니다. attachment 된 파일에 대해서, ACL read 권한이 있어야만 다운로드를 받을 수 있습니다. ACL write 권한이 있으면, 덮어씌울수도 있습니다.

Name
Password
Homepage
Secret