분류
관리자 시점에서 바라본 문서 ACL 설정창
사무관 시점에서 바라본 이름공간 ACL 설정창
1. 개요[편집]
더시드엔진의 2017년 11월 22일 업데이트 이후, 전면 개편된 ACL[1] 권한을 설정하는 법에 대한 설명입니다. 기존의 ACL은 문서 읽기, 문서 편집, 토론 발제 및 참여, 문서 삭제, 문서 이동 5개의 분야에 모두, 비로그인 제한, 관리자 제한 3단계의 편집 제한만 설정이 가능했지만 이 업데이트 이후 토론 발제 권한과 참여 권한이 분리가 되었으며 문서 ACL 조정 가능 권한이 새로 신설이 되었습니다. 또한 가입 후 15일 이상이 지난 이용자, 차단된 이용자, 특정 이용자에 대해 ACL이 조정이 가능하게 되었습니다. 이름공간 ACL이 생겨 해당 네임스페이스에 속한 모든 문서에 일괄적으로 ACL을 적용할 수도 있습니다.
이로써 이전에는 불가능하였던 차단 소명 게시판의 알파위키 내부 이전과 뻘토론 생성만을 막을 수 있는 것[2]이 가능하게 되었습니다.
이로써 이전에는 불가능하였던 차단 소명 게시판의 알파위키 내부 이전과 뻘토론 생성만을 막을 수 있는 것[2]이 가능하게 되었습니다.
2. 문서 ACL과 이름공간 ACL[편집]
ACL은 크게 두 가지로 구분됩니다.
- 문서 ACL: 해당 문서에서만 적용되는 ACL입니다.
3. 입력 가능한 명령문[편집]
상단의 이미지를 참조하신다면, 입력가능한 명령이 4가지 섹션으로 구분되어 있음을 알 수 있습니다.
3.1. 1번째 칸: 권한/사용자/IP/geoIP/ACL 그룹[편집]
ACL을 조정할 영역을 설정합니다.
- 권한: 일정한 종류의 사용자들을 대상으로 권한을 조정합니다.
- 사용자: 특정한 사용자(ID)를 대상으로 권한을 조정합니다.
- 아이피: 특정한 IP를 대상으로 권한을 조정합니다. 단, 개별 IP에 대해서만 권한을 조정할 수 있으며, 대역에 대한 권한 설정은 개발 예정입니다.
- GeoIP: 특정한 지역의 IP를 대상으로 권한을 조정합니다.
- ACL 그룹: ACL 그룹을 대상으로 한 문서 접근 권한을 조정합니다. 차단된 사용자 또는 IP를 권한 설정 창에서보다 이쪽 설정으로 할 것을 권장하며 차단 기능이 ACL 그룹으로 개편됨에 따라 다양한 차단 사유를 그룹별로 나누어 관리하고 해당 그룹별 접근에 대해 관리할 수 있습니다.
3.2. 2번째 칸[편집]
1번째 칸에 사용자/아이피를 지정한 경우, 이 칸은 특정한 IP 또는 ID를 입력하게 됩니다. 1번째 칸에 geoIP를 지정한 경우, 이 칸은 특정한 국가 코드를 입력하게 됩니다. 국가 코드(KR, US, JP 등)가 아닌 국가 이름(Korea, 한국, 대한민국 등)을 입력할 경우 ACL 설정이 거부됩니다.[5]
1번째 칸에 '권한'을 지정한 경우, 다음 범주를 설정하게 됩니다.
1번째 칸에 '권한'을 지정한 경우, 다음 범주를 설정하게 됩니다.
- 아무나 (perm:any): 제한이 없습니다.
- 로그인한 사용자 (perm:member) [*]: 비회원을 제외합니다.
- 가입한 지 15일이 지난 사용자 (perm:member_signup_15days_ago) [*]: 로그인한 사용자 중에서도 계정 생성후 15일이 아닌 계정을 제외합니다.
- 관리자 (perm:admin): 관리자만을 지정합니다.[6]
- 해당 문서 기여자 (perm:document_contributer) [*]: 해당 문서에 기여한 내역이 있는 사용자만을 지정합니다. 이 때, 토론 기여는 포함되지 않습니다.
- 위키 기여자 (perm:contributer) [*]: 위키에 한 번이라도 기여한 내역이 있는 사람을 지정합니다.
- 문서 제목과 사용자 이름이 일치 (perm:match_username_and_document_title): 이름공간을 제외한 문서 제목 부분이 사용자 이름과 같은 사용자만 지정합니다.
기존에는 별표한 범주에서 차단된 사용자를 제외했으나 현재는 그렇지 않습니다. 따라서 별표한 범주를 지정할 때에는 이름공간ACL 실행(gotons) 사용을 권장합니다.
3.3. 3번째 칸: 허용/거부/이름공간 ACL[편집]
- 허용: 2번째 칸에서 지정한 대상의 편집을 허용 합니다.
- 거부: 반대로, 지정된 대상의 편집을 거부 합니다.
- 이름공간 ACL 실행: 해당 권한에 해당하는 사용자의 경우 이름공간 ACL로 실행됩니다. 즉 해당 사용자들은 이름공간 ACL 규칙을 적용받습니다.
3.4. 4번째 칸: 기간[편집]
ACL을 얼마나 지정할 것인지 그 기간을 지정합니다. 기간제 ACL이 도입되어 기간제로 ACL을 상향하는 것도 가능합니다.
4. ACL 그룹 개편에 따른 특정 문서 ACL 설정[편집]
2020년 8월 말 개편된, 새로운 ACL 그룹 형태로 일부 개편된 바가 있습니다. 이에 따라 ACL 그룹별로 접근 제한 혹은 허용을 결정할 수 있는 다양한 구조가 가능합니다. 이에 따라, 기존의 "차단된 유저" 는 기본적으로 차단되던 설정이 바뀌었습니다. 따라서 로그인 사용자 권한/15일 가입된 사용자/문서 기여자 만을 허용할 경우, 차단된 사용자도 편집이 가능하도록 되었습니다. 따라서, 기존과 같이 차단된 사용자의 문서 편집이나 토론 등의 접근 권한을 거부하기 위해서는 앞서 설명된 순서 우선권과 거부, 허용에 대한 논리적인 우선순위를 잘 이해하고 있어야 합니다.
가장 쉬운 방식은, 기존과 같이 허용하고 싶은 그룹(예를 들면, 소위 1단계 제한의 경우 "로그인 사용자", 2단계 제한의 경우 "가입된지 15일 후의 사용자") 을 선택한 후, 이름공간 실행으로 보내버릴 경우 이름공간에서는 자동적으로 차단된 사용자 혹은 차단된 아이피를 우선적으로 걸러낼 수 있도록 설정되어 있습니다.
가장 쉬운 방식은, 기존과 같이 허용하고 싶은 그룹(예를 들면, 소위 1단계 제한의 경우 "로그인 사용자", 2단계 제한의 경우 "가입된지 15일 후의 사용자") 을 선택한 후, 이름공간 실행으로 보내버릴 경우 이름공간에서는 자동적으로 차단된 사용자 혹은 차단된 아이피를 우선적으로 걸러낼 수 있도록 설정되어 있습니다.
5. ACL 권한 ACL[편집]
ACL을 조정하는 권한을 설정하는 ACL입니다. 일반적인 경우 조정할 필요가 없습니다. 여기서 ACL 조정 권한을 부여할 경우 문서의 ACL은 조정이 가능하나 네임스페이스 ACL은 조정이 불가능합니다. nsacl이라는 권한이 부여되어야 네임스페이스 ACL을 조정 가능하며, nsacl 권한 보유자는 일반 문서 ACL 조정 ACL을 무시하고도 ACL 조정이 가능합니다.
6. 개발자 도구를 이용한 추가 설정[편집]
ACL을 조정하고자 하는 문서의 ACL 설정 페이지에 접속해 개발자 도구(F12)를 실행합니다.
개발자 도구 좌측 상단의 마우스 포인터 모양 아이콘을 클릭한 뒤, 권한 리스트를 선택합니다.
선택된 것을 펼쳐, 권한 값을 더블클릭합니다.
권한명을 입력한 뒤 추가 버튼을 클릭합니다.
위 사진과 같이, 리스트에 없는 검사관(login_history)을 추가할 수 있습니다. 이외에도 ip를 추가해서 아이피 사용자만을, grant를 추가해서 사무관만을 지정할 수 있습니다.
7. 주의 사항[편집]
넓은 범위의 권한을 첫 번째 규칙으로 설정을 해 버리면 하위 규칙에 좁은 범위의 권한을 따로 설정을 해도 먹히지 않습니다.
예를 들어서,
예를 들어서,
규칙 1 아무나 허용
규칙 2 차단된 아이피 거부
규칙 3 차단된 계정 거부
8. 기타[편집]
- 특정 ACL을 삽입한 경우 꼭 마지막에 모두 거부를 설정할 필요가 없습니다. 허용되는 ACL이 없다면 자동으로 거부됩니다.
- 내부적으로는 남아있는 것으로 추정되나[7] 2020년 3월 1일부로 각각의 문서의 읽기 ACL을 조정할 수 없습니다.
[1] 문서의 편집 및 읽기 권한 등을 설정하는 시스템[2] 토론 발제 권한에 로그인 이용자 전용이 달려 있는 경우 비로그인 이용자는 토론 발제가 불가하고, 로그인 이용자가 발제한 토론에 참여만이 가능하다. 토론 부문에 로그인 이용자 ACL을 설정해 놓았으면 비로그인 이용자는 토론 발제 뿐만 아니라 참여도 불가하였다.[3] 이름공간은 본 문서의 제목 '알파위키:운영진 권한 도움말/ACL'에서 콜론 앞 부분인 '알파위키'를 말합니다. 일반 문서의 경우 문서 제목 앞에 '문서:'가 생략되어 표시될 뿐이지, 일반 문서의 이름공간은 '문서'입니다.[4] 문서 ACL에서 이름공간ACL 실행을 선택한 경우에만 이름공간 ACL이 실행됩니다.[5] invalid_acl_condition이라는 메세지가 뜨게 됩니다.[6] 정확히는 admin 권한을 보유한 사용자만을 지정합니다.[7] API에서 문서 ACL에서도 읽기 ACL 목록 반환.