미디어위키/미디어위키 설치 및 관리

미디어위키(Mediawiki) 사용자 권한(User rights) 설정

씨실과 날실 2019. 3. 22. 15:10


위키 설치를 위해 초반에 환경설정을 하는데 위키가 설치되는 서버의 DB 정보 등 최소한의 기본 정보를 설정한 후 아래 그림과 같이 보다 자세한 내용을 설정을 할 것인지 아니면 바로 위키를 설치할 것인지 물어 보게 됩니다.

위 단계에서 더 많은 질문을 물어보세요에 체크하고(기본값) 계속 버튼을 누르면 아래와 같이 사용자 권한 프로필과 저작권 및 라이선스 설정 화면을 볼 수 있습니다.

오늘은 이 둘 중 오늘은 사용자 권한에 대해 다루고자 합니다. 사용자 권한 연재 다음에 저작권 및 라이선스에 대해 다루도록 하겠습니다.

미디어위키는 설치 시 기본적으로 4가지 사용자 권한 설정을 제공합니다. 여기서 선택을 하면 나중에 굳이 코드를 작성하여 권한을 설정할 필요 없이 미디어위키 인스톨러가 자동으로 설정해줍니다.

물론 나중에 LocalSettings,php 파일을 편집함으로써 위키의 사용자 권한을 바꿀 수 있습니다.

미디어위키 설치 시 사용자 권한 기본 설정

미디어위키 설치 시 아래의 기본 4가지 형태로 사용자 권한을 설정할 수 있습니다.

사용자 권한 프로필:

     열린 위키

     계정 만들기 필요

     승인된 편집자만

     비공개 위키

그리고 아래에 사용자 권한과 관련하여 아래와 같은 추가 정보가 있습니다.

정보

위키는 가능한 많은 사람들이 편집할 수 있도록 할 때 가장 뛰어난 역할을 합니다. 미디어위키에서는 최근 바뀜을 검토하기 쉽고, 미숙하거나 악의적인 사용자에 의한 손실을 되돌리는 것이 쉽습니다.

그러나 많은 사람이 미디어위키가 다양한 역할을 수행하는 데 유용하다는 것을 알고 있지만, 때로는 모든 사람에게 위키 방식의 장점을 설득하기 쉽지 않을 지도 모릅니다. 그래서 선택할 수 있습니다.

열린 위키/ 모델은 로그인하지 않고도 누구나 편집할 수 있습니다. 계정 만들기 필요인 위키에서는 편집자에게 추가적인 책임을 부여하지만, 부담 없는 기여를 저해할 수도 있습니다.

승인된 편집자만 시나리오에서는 승인된 사용자만 편집할 수 있지만, 일반 사용자도 문서(문서 역사 포함)는 볼 수 있습니다. 비공개 위키는 승인된 사용자만 문서를 볼 수 있으며, 승인된 사용자 그룹이 편집할 수 있습니다.

더 복잡한 사용자 권한 설정은 설치한 후 사용할 수 있으며 관련 설명서 항목을 참조하세요.

사용자 권한별 위키 형태

열린 위키

열린위키는 말 그대로 누구에게나 읽기와 편집 권한이 열려 있는 위키입니다. 굳이 위키에 가입하지 않아도 익명인 채로 내용을 생성하거나 수정할 수 있습니다. 이 열린 위키야 말로 집단지성을 추구하는 위키라는 시스템의 특질을 잘 보여주는 설정입니다.

그러나 이 열린 위키는 아무에게나 열려 있고 익명으로 내용을 수정할 수 있기 때문에 반달 등의 공격에 취약합니다.

반달(Vandal)이란다수가 참여할 수 있도록 공개된 문서의 내용을 훼손하는 행위를 말합니다. 그 훼손에는 여러 형태가 있어 내용을 왜곡하거나, 내용을 정당한 이유 없이 삭제하거나, 내용과 관련없는 선전을 넣거나, 문서에 접속시 특정 주소로 납치하는 코드를 심거나, 욕이나 비방, 낙서 등을 하여 다른 이들에게 불쾌감을 주는 등의 행위를 일컫는 일종의 문화 파괴 행태입니다.

위키에서의 반달 행위의 예는 아래에서 찾아볼 수 있습니다.

물론 다른 설정 형태의 위키도 반달은 생길 수 있지만 열린 위키가 가지고 있는 익명성 때문에 다른 경우보다 더욱 취약합니다.

계정 만들기 필요

위키에서 익명성을 제거한 형태입니다. 비록 닉네임에 불과하더라도 자신의 이름을 걸고 문서를 작성 및 수정하는 것이기 때문에 문서 작성 및 수정 행위에 대해 보다 강한 책임감을 부여한 것으로 볼 수 있습니다.  단, 계정을 만들기만 하면 바로 새로운 문서를 작성하거나 기존 문서를 수정할 수 있기 때문에 문서 작성이나 수정에 실질적인 제한은 없는 형태입니다.

단, 주의할 점은 위키는 기록된 문서의 보관에 특화된 설계로, 한번 가입한 사용자는 자신 스스로 탈퇴할 수 없습니다. 단지 위키 관리자가 해당 계정을 사용 중지할 수 있을 뿐 해당 계정 자체와 그 계정의 사용자가 했던 작업들은 모두 살아있게 됩니다. 따라서 위키 가입에는 신중해야 합니다.

승인된 편집자만

위키 관리자나 사용자 권한 관리 권한을 지닌 운영자에게서 문서 생성과 수정 권한을  부여받은 사람만 위키에 문서를 생성하거나 기존 문서를 수정할 수 있습니다.

이 설정은 반달을 최소화하고 위키 내용의 진실성 및 전문성을 높일 수 있으나 문서 기여자의 수가 적기 때문에 위키 활동이 부진해질 수 있습니다.

비공개 위키

비공개 위키는 말 그대로 다른 이에게는 내용을 전혀 공개하지 않고 위키 소유자만 내용을 작성하고 수정할 수 있는 형태입니다.

이 비공개 위키는 집단지성을 위키의 설계 사상과는 정반대로 사용하는 것입니다만 작성자의 지식이나 작업의 변화 및 발전 과정을 추적할 수 있는 이점을 가지고 있기 때문에 적은 수나마 블로그 대신 이 위키를 자신의 웹사이트로 채택하곤 합니다.

이 비공개 위키는 승인된 사용자만 문서를 볼 수 있으며, 승인된 사용자 그룹이 편집할 수 있습니다.

미디어위키 사용자 권한 설정 변경

미디어위키 설치 연재 당시 저는 계정 만들기 필요 설정으로 위키를 설치했습니다. 그러나 추후에 이 설정을 다른 형태로 바꿀 필요가 생길 것입니다.

위의 4가지 기본 사용자 권한 형태는 아래의 코드를 넣거나 기존의 사용자 권한 코드에서 바꾸고자 하는 코드로 바꿔주시면 됩니다.

열린 위키

사용자 권한과 관련하여 LocalSettings.php 파일에 아무런 설정이 없으면 열린 위키로 설정됩니다. 미디어위키의 사용자 권한 설정 기본값이 열린 위키에 맞춰져 있기 때문입니다.

계정 만들기 필요

# The following permissions were set based on your choice in the installer
$wgGroupPermissions['*']['edit'] = false; 

# The following permissions were set based on your choice in the installer는 아래 사용자 권한 설정 코드가 미디어위키 설치 시 인스톨러에 의해 자동으로 생성되었다고 알려주는 주석입니다.

아래는 해당 코드의 설명입니다.

$wgGroupPermissions['*']['edit'] = false;


$wgGroupPermissions

$wgGroupPermissions은 미디어위키 내 사용자 그룹별 권한 설정 코드입니다.


['*']

['*']는 모든 사람을 뜻합니다.


['edit']

['edit']는 편집 권한을 뜻합니다.


= false;

= false;는 권한 미부여 설정입니다.

승인된 편집자만

# The following permissions were set based on your choice in the installer
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false; 

아래는 해당 코드의 설명입니다.

$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;


$wgGroupPermissions

$wgGroupPermissions은 미디어위키 내 사용자 그룹별 권한 설정 코드입니다.


['*']

['*']는 모든 사람을 뜻합니다.


['createaccount']

['createaccount']는 계정 생성 권한을 뜻합니다.


['edit']

['edit']는 편집 권한을 뜻합니다.


= false;

= false;는 권한 미부여 설정입니다.


비공개 위키

# The following permissions were set based on your choice in the installer
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false; 

아래는 해당 코드의 설명입니다.

$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;


$wgGroupPermissions

$wgGroupPermissions은 미디어위키 내 사용자 그룹별 권한 설정 코드입니다.


['*']

['*']는 모든 사람을 뜻합니다.


['createaccount']

['createaccount']는 계정 생성 권한을 뜻합니다.


['edit']

['edit']는 편집 권한을 뜻합니다.


['read']

['read']는 읽기 권한을 뜻합니다.


= false;

= false;는 권한 미부여 설정입니다.


$wgGroupPermissions 코드 작성법

위 4가지 사용자 권한 기본 설정 외에 미디어위키 내의 사용자 그룹과 권한을 알면 사용자 그룹별로 굉장히 다양한 권한 설정이 가능합니다.

그룹별로 다양한 권한 설정을 하기 위해서는 $wgGroupPermissions 변수를 사용해야 합니다.

$wgGroupPermissions 기본 예제

$wgGroupPermissions['*']['edit'] = false;

$wgGroupPermissions

$wgGroupPermissions은 미디어위키 내 사용자 그룹별 권한 설정 코드입니다.

이 $wgGroupPermissions은 사용자 그룹과 권한이라는 2차원적 배열로 사용자 그룹별 권한 설정이 가능합니다..

['*']

첫 번째 ['   ']는 설정하고자 하는 사용자 그룹을 지정하는 코드입니다. ['   '] 안에 권한을 설정하고자 하는 그룹을 적어주시면 됩니다.

['edit']

두 번째 ['   ']는 설정하고자 하는 권한을 지정하는 코드입니다. ['   '] 안에 설정하고자 하는 권한을 적어주시면 됩니다.

= false;

해당 권한의 부여 여부를 설정하는 코드입니다. 권한을 부여하려면  = true;를, 미부여하려면 = false;를 적어주시면 됩니다.

미디어위키 내 새로운 사용자 그룹 생성 및 권한 부여

이 내용은 내용이 많아 따로 글을 적었습니다. 아래 링크를 참고하시기 바랍니다.

미디어위키 내 권한과 해당 권한 사용자 그룹 기본값

이 내용은 양이 굉장히 많아 미디어위키 사이트 내 해당 내용의 링크로 대신합니다.

미디어위키 내 기본 그룹과 해당 그룹별 부여된 권한 기본값

이 내용 역시 양이 굉장히 많아 미디어위키 사이트 내 해당 내용의 링크로 대신합니다.