Matrix Room 관리자 화면에서 "M_FORBIDDEN: 권한이 없습니다" 오류를 수정하세요.

Matrix에서 방 설정을 변경하거나, 사용자를 삭제하거나, 차단하거나, 권한을 편집하거나, 기타 관리자 작업을 수행하려고 하면 오류가 발생합니다 M_FORBIDDEN: You do not have permission. 처음 사용하는 사용자에게는 이 메시지가 혼란스러울 수 있는데, Matrix에서 "관리자"는 두 가지 다른 의미를 가지기 때문입니다. 서버 관리자는 홈 서버를 제어하는 ​​권한을, 방 관리자는 특정 방 내에서만 권한을 가진 권한을 가집니다. 이 두 가지는 별개의 권한 시스템입니다.

가장 확실한 해결책은 변경하기 전에 어떤 권한 계층이 작업을 차단했는지 파악하는 것입니다. Matrix 룸 권한은 파워 레벨 에 기반합니다 . 파워 레벨은 룸 상태에 저장된 숫자로, 누가 룸을 초대, 강퇴, 차단, 메시지 수정, 룸 설정 변경 또는 파워 레벨 자체를 편집할 수 있는지를 결정합니다. 현재 Matrix 사양은 Matrix 클라이언트-서버 API 사양 에서 이러한 규칙을 정의합니다. Synapse는 Synapse 관리자 API 문서 에서 서버 관리자와 룸 관리자가 서로 다르다는 점을 별도로 명시하고 있습니다 .

대표 요소 스타일 매트릭스 룸 화면에 M_FORBIDDEN 권한 오류가 표시됩니다.
응답 M_FORBIDDEN이 왔다는 것은 홈서버가 시도된 작업을 거부했다는 의미입니다. 정확한 거부 이유는 작업 종류, 멤버십 상태 및 방의 전력 수준에 따라 다릅니다.

무엇을 바꾸기 전에: 중요한 네 가지 가치를 먼저 알아두세요

일반적으로 다음 네 가지 정보가 필요합니다.

  • 예를 들어, Matrix 사용자 ID입니다@alice:example.com .
  • 예를 들어 방 ID가!abc123:example.com 있습니다 . 와 같은 방 별칭이 #team:example.com읽기 쉽지만, 많은 API는 내부 방 ID를 사용합니다.
  • 회원 자격 상태입니다 . 대부분의 경우 회의실 관리 작업을 수행하려면 먼저 회의실에 가입되어 있어야 합니다.
  • 당신의 전투력과 해당 행동에 필요한 전투력 수준 .

Element 웹 또는 데스크톱 버전에서 회의실 ID와 회의실 버전은 회의실 설정의 고급 메뉴에서 확인할 수 있습니다. Element의 최신 설명서에서는 회의실 관리 기능을 회의실 설정 → 역할 및 권한 메뉴 에서도 안내하고 있습니다 . Element 회의실 설정 가이드를 참조하세요 .

1단계: 실제로 회의실에 접속했는지 확인하세요.

Matrix는 초대됨, 참여함, 탈퇴함, 차단됨 등 여러 가지 멤버십 상태를 구분합니다. 사용자는 일반적으로 join방 이벤트를 보내거나 방을 관리하려면 멤버십 상태가 필요합니다. 홈서버 관리자 계정이라도 방에 참여하지 않은 경우 일반적인 방 작업조차 실패할 수 있기 때문에 이 점이 중요합니다.

Element와 같은 Matrix 클라이언트를 사용하는 경우, 회의실을 열고 초대 또는 과거 회의실이 아닌 실제로 참여한 활성 회의실로 표시되는지 확인하십시오. Synapse를 운영하고 서버 관리자 복구 경로가 필요한 경우, Synapse는 로컬 사용자를 회의실에 참여시키는 관리자 엔드포인트를 제공하지만, 해당 작업에 필요한 권한에 대한 문서도 제공합니다. Synapse 회의실 멤버십 관리 부분을 참조하십시오 .

이러한 실수를 피하세요: Synapse 관리자 API 토큰을 소유하고 있다고 해서 자동으로 해당 계정에 회의실 관리 권한이 부여된다고 생각하지 마십시오. 서버 관리와 회의실 관리는 의도적으로 구분되어 있습니다.

2단계: 자신의 역할과 해당 행동에 필요한 권한 수준을 확인하세요.

Element는 멤버, 운영자, 관리자와 같은 친숙한 역할로 일반적인 권한 수준을 나타냅니다. 내부적으로 Matrix는 레이블이 아닌 숫자를 평가합니다. Matrix 사양에서는 상태 이벤트 임계값 미만의 사용자를 일반 사용자, 임계값 이상의 사용자를 운영자, 편집 권한 이상의 사용자를 관리자로 해석하는 것을 권장합니다 m.room.power_levels. 일반적으로 채팅방에서는 멤버를 0, 운영자를 50, 관리자를 100으로 설정하지만, 채팅방 환경에 따라 이러한 값을 사용자 지정할 수 있습니다.

대표적인 요소로 구성된 회의실 역할 보기 화면은 관리자, 운영자, 회원 및 게스트 범주를 보여줍니다.
관리자 및 운영자 같은 클라이언트 레이블은 Matrix의 권한 수준을 읽기 쉽게 나타낸 것입니다. 사용자 지정 방은 다른 권한 기준을 사용할 수 있으므로 항상 방의 실제 권한을 확인하십시오.

회의실 설정 → 역할 및 권한으로 이동하세요 . 본인의 역할과 시도하려는 정확한 작업을 모두 확인하세요. Element의 최신 문서에는 설정 변경, 사용자 삭제, 사용자 차단, 기록 공개 범위 변경, 권한 변경과 같은 일반적인 작업과 각 작업에 필요한 권한 수준이 명시되어 있습니다.

예를 들어, 내 계정의 권한 레벨이 50이고 방의 권한 변경에 100 레벨이 필요하다고 가정해 봅시다. 이 경우에도 관리자로서 일부 관리 작업을 수행할 수 있지만, 권한 모델을 편집하려고 하면 오류가 발생합니다 M_FORBIDDEN.

3단계: 대상 사용자와 자신의 역량을 점검하십시오.

이는 매트릭스 규칙 중 가장 간과하기 쉬운 규칙 중 하나입니다. 추방 및 차단 작업의 경우, 단순히 작업 임계값을 충족하는 것만으로는 충분하지 않을 수 있습니다. 매트릭스 권한 규칙에 따라 대상 사용자는 작업을 수행하는 사용자보다 낮은 권한 레벨을 가져야 합니다.

예시: 당신의 계정 레벨은 50이고, 방의 kick강퇴 기준 레벨도 50이며, 다른 운영자도 레벨 50입니다. 당신은 강퇴 기준을 충족하지만, 같은 레벨의 운영자를 강퇴할 수 없습니다. 강퇴 대상의 레벨이 당신보다 낮지 않기 때문에 권한 규칙이 해당 작업을 거부하는 것입니다.

대표 매트릭스 회의실 권한 보기에서 설정, 초대, 메시지 및 별칭에 대한 다양한 요구 사항을 보여줍니다.
권한은 작업별로 평가됩니다. 사용자는 멤버를 초대하거나 메시지를 보낼 수 있지만, 방 설정을 변경하거나 다른 권한 있는 사용자를 관리하는 데 필요한 권한이 없을 수도 있습니다.

이와 같은 원칙은 혼란스러운 관리 실패 사례들을 설명해 줍니다. 채팅방 관리자는 비교 대상의 양쪽 측면을 모두 살펴봐야 합니다.

  • 현재 전투력 수준입니다.
  • 필수 kick또는 ban기준치.
  • 대상 사용자의 현재 전력 레벨.

대상 사용자가 동일한 레벨의 관리자인 경우, 일반적으로 동일한 레벨의 관리자는 해당 사용자의 권한을 간단히 제거할 수 없습니다. Element의 고급 회의실 관리 문서에서는 일반적인 클라이언트 워크플로에서 관리자가 다른 관리자의 관리자 권한을 제거할 수 없다는 점을 명시적으로 경고합니다. Element 고급 회의실 관리 문서를 참조하십시오 .

4단계: 사용 가능한 기존 회의실 관리자가 있는 경우 해당 관리자를 활용하세요.

가장 간단한 복구 방법은 기술적인 문제보다는 조직적인 문제인 경우가 많습니다. 다른 활성 회의실 관리자가 있고 충분한 권한을 가지고 있다면, 해당 관리자에게 회의실 설정 → 역할 및 권한을 통해 가입한 계정을 관리자 권한으로 승격시켜 달라고 요청하십시오 .

이 방법은 클라이언트가 현재 역할 모델을 표시하고 다른 Matrix 클라이언트와 동일한 권한 부여 규칙을 적용하므로 수동으로 방 상태를 조작하는 것보다 좋습니다. 승격 후 원래 작업을 다시 시도하십시오.

그래도 문제가 해결되지 않으면 "관리자" 권한이 모든 작업을 자동으로 허용한다는 가정 대신, 해당 작업과 권한 임계값을 비교해 보세요. 사용자 지정 권한 수준 이벤트를 통해 특정 이벤트 유형에 특수한 임계값을 할당할 수 있습니다.

5단계: 사용 가능한 회의실 관리자가 남아 있지 않은 경우 Synapse를 통해 복구하십시오.

Synapse 홈서버를 운영 중이고 활성 관리자가 없는 회의실이 있는 경우, 데이터베이스를 편집하거나 회의실 이벤트를 인위적으로 생성하는 대신 Synapse에서 지원하는 복구 API를 사용하십시오. Synapse는 회의실 관리자 권한 생성 API를 제공합니다 .

POST /_synapse/admin/v1/rooms/<room_id_or_alias>/make_room_admin

{
  "user_id": "@alice:example.com"
}

Synapse 서버 관리자 의 액세스 토큰으로 해당 요청을 인증하십시오 . 공식 룸 관리자 API 문서는 Synapse Rooms Admin API 에서 확인할 수 있습니다 . 이 엔드포인트는 선택한 로컬 사용자에게 해당 룸에서 로컬 사용자가 사용할 수 있는 최고 권한을 부여합니다. 필요한 경우, 해당 사용자를 먼저 초대할 수도 있습니다.

대표적인 시냅스 관리실 목록과 함께 여러 개의 매트릭스실을 둘러볼 수 있습니다.
홈서버 관리자는 Synapse에서 지원하는 룸 API를 사용하여 영향을 받은 룸을 식별하고 적합한 룸 관리자가 남아 있지 않은 경우 룸 수준 관리 권한을 복구할 수 있습니다.

복구 통화 후, 승격된 계정으로 회의실에 참여하거나 회의실을 다시 열고 Matrix 클라이언트에서 해당 작업을 다시 시도하십시오.

특별 사례: 룸 버전 12 이상

매트릭스 룸 버전 12에서는 생성자 표시 방식이 변경되었습니다. 생성자는 사실상 무제한의 불변의 권한 레벨을 가지며, 일반 사용자처럼 맵에 표시되지 않습니다 users. 또한, 일반적인 권한 레벨 변경 이벤트를 통해 생성자의 권한이 강등될 수 없습니다. 이러한 동작은 매트릭스 룸 버전 12 사양m.room.power_levels 에 자세히 설명되어 있습니다 .

즉, 이전 버전의 룸에서 복사한 문제 해결 기법이 버전 12 룸에 그대로 적용되지 않을 수 있습니다. 고급 복구 또는 전력 레벨 편집을 시도하기 전에 룸 버전을 확인하십시오.

전력 레벨을 직접 확인하는 방법

고급 문제 해결을 위해서는 관련 객실 상태 이벤트를 참조하십시오 m.room.power_levels. 이 이벤트에는 다음과 같은 필드가 포함되어 있습니다.

{
  "users_default": 0,
  "state_default": 50,
  "invite": 0,
  "kick": 50,
  "ban": 50,
  "redact": 50,
  "users": {
    "@alice:example.com": 100,
    "@bob:example.com": 50
  }
}

계정이 목록에 없는 경우 users, 계정 레벨은 일반적으로 0으로 설정됩니다 users_default. 대부분의 방에서 이는 0을 의미합니다. 특정 이벤트 유형은 맵을 통해 일반 상태 또는 메시지 임계값을 재정의할 수도 있습니다 events.

클라이언트나 API가 어떤 정보를 보존할지 정확히 알지 못하는 한, 전체 권한 수준 이벤트를 작은 부분 객체로 대체하지 마십시오. 권한 수준 상태에는 여러 중요한 필드가 포함될 수 있으며, 실수로 이러한 필드를 삭제하면 의도한 것보다 더 많은 권한이 변경될 수 있습니다.

하지 말아야 할 일

  • 단순한 회의실 역할 문제 해결을 위해 Synapse 계정을 서버 관리자로 승격시키지 마십시오. 필요한 최소한의 권한만 사용하십시오.
  • 회의실 전력 레벨을 변경하기 위해 Synapse 데이터베이스 행을 편집하지 마십시오. 회의실 권한은 데이터베이스의 사용자 플래그가 아닌 서명된 회의실 이벤트로 표시됩니다.
  • Synapse를 재시작하는 것을 일반적인 해결 방법으로 사용하지 마십시오 M_FORBIDDEN. 인증 실패는 대개 확정적인 회의실 상태 결정과 관련이 있으며, 오래된 프로세스 문제와는 관련이 없습니다.
  • 클라이언트 캐시를 삭제한다고 해서 권한이 변경된다고 생각하지 마십시오. 홈서버가 권한 부여 규칙을 적용합니다.
  • 셸 기록, 스크린샷, 지원 티켓 또는 URL에 액세스 토큰을 노출하지 마십시오.Authorization: Bearer ... API를 사용할 때는 헤더를 활용하는 것이 좋습니다 .

빠른 진단표

당신이 보는 것아마도 확인다음 동작
M_FORBIDDEN객실 설정을 변경할 때사용자의 레벨과 요구되는 상태 이벤트 또는 설정 레벨 간의 차이충분한 권한을 가진 관리자에게 승진을 요청하거나 자격 요건을 조정해달라고 하세요.
M_FORBIDDEN강퇴 또는 차단 시조치 임계값 및 대상 사용자 수준사용자의 레벨은 기준치를 충족하고 목표 사용자의 레벨을 초과해야 합니다.
서버 관리자는 클라이언트에서 방을 관리할 수 없습니다.서버 관리자와 방 관리자의 차이점회의실에 참여하고 make_room_admin필요한 경우 지원되는 복구 API를 사용하십시오.
활성 상태인 방 관리자가 없습니다.시냅스 복구 경로서버 관리자 토큰을 사용하여 Make Room 관리자 API를 사용하세요.
기존 명령어는 다르게 작동합니다.룸 버전전력 레벨을 수정하기 전에 룸 버전이 12 이상인지 확인하십시오.

최종 확인

문제가 해결된 것은 방을 관리해야 하는 계정이 참여하고, 해당 작업을 수행하기에 충분한 권한을 가지고 있으며, 403 M_FORBIDDEN오류 없이 해당 작업을 수행할 수 있을 때입니다. 중재 작업의 경우, Matrix 권한 부여 규칙에서 요구하는 경우 대상 사용자의 권한 수준이 더 낮은지 확인하십시오.

Matrix 관리자에게 가장 유용한 사고방식은 간단합니다. 먼저 홈서버 권한 인지 룸 권한 인지 파악하십시오 . 그런 다음 멤버십, 관리자의 권한 수준, 작업 임계값 및 대상 사용자의 수준을 검토하십시오. 이 순서를 따르면 불필요한 서버 변경 없이 대부분의 권한 오류를 해결할 수 있습니다.

댓글 남기기

네트워크에서 장치를 찾는 데 유용한 최고의 핑 스윕 도구 10가지

네트워크에서 장치를 찾는 데 유용한 최고의 핑 스윕 도구 10가지

빠른 LAN 검색, 플랫폼 간 스캔 및 IP 주소 관리를 위한 10가지 핑 스윕 도구를 비교해 보세요. 스윕을 통해 무엇을 알 수 있고 무엇을 알 수 없는지 알아보세요.

성능 추적을 위한 최고의 네트워크 관리 도구 6가지

성능 추적을 위한 최고의 네트워크 관리 도구 6가지

SNMP 적용 범위, 매핑, 알림, 배포 모델 및 비용 대비 효과를 포함하여 성능 모니터링을 위한 6가지 네트워크 관리 도구를 비교합니다.

Windows, iOS 및 Android용 최고의 Wi-Fi 분석기

Windows, iOS 및 Android용 최고의 Wi-Fi 분석기

Windows, iPhone, Android용 Wi-Fi 분석 앱들을 비교해 보세요. 채널 혼잡도, 신호 범위, 히트맵, 네트워크 문제 해결 도구 등을 포함합니다.

핑 모니터: 네트워크 가용성을 위한 7가지 무료 오픈소스 도구

핑 모니터: 네트워크 가용성을 위한 7가지 무료 오픈소스 도구

종합적인 네트워크 관리 도구부터 특정 지연 시간 측정에 특화된 도구까지, 7가지 무료 오픈 소스 핑 모니터링 도구를 비교하고 가용성, 패킷 손실률, 기록 관리에 적합한 도구를 선택하세요.

네트워킹에서의 QoS: 서비스 품질(QoS)이란 무엇이며 어떻게 작동하는가

네트워킹에서의 QoS: 서비스 품질(QoS)이란 무엇이며 어떻게 작동하는가

네트워킹에서 QoS가 무엇을 의미하는지, DSCP 마킹과 트래픽 큐가 음성, 비디오 및 비즈니스 애플리케이션의 우선순위를 어떻게 지정하는지, 그리고 QoS로 해결할 수 없는 문제는 무엇인지 알아보세요.

Nmap을 사용하여 트레이서루트를 실행하고 네트워크 경로를 읽는 방법

Nmap을 사용하여 트레이서루트를 실행하고 네트워크 경로를 읽는 방법

Nmap의 --traceroute 옵션을 사용하여 홉을 인증된 호스트로 매핑하고, 홉 및 RTT 출력을 이해하고, 과도한 스캔 없이 누락된 응답 문제를 해결할 수 있습니다.

안전한 파일 전송을 위한 최고의 SFTP 서버 소프트웨어

안전한 파일 전송을 위한 최고의 SFTP 서버 소프트웨어

Windows 및 Linux용 안정적인 SFTP 서버 소프트웨어(OpenSSH, Bitvise, SolarWinds, SFTPGo 등)를 비교해 보세요. 보안 및 파일 전송 요구 사항에 맞는 최적의 솔루션을 찾아보세요.

네트워크 팀을 위한 최고의 IP 주소 관리 도구 7가지

네트워크 팀을 위한 최고의 IP 주소 관리 도구 7가지

서브넷 검색, DNS 및 DHCP 조정, 네트워크 인벤토리, 오픈 소스 IPAM을 위한 7가지 IP 주소 관리 도구를 비교합니다.

네트워크 모니터링 모범 사례: 추적 대상 및 사용 도구

네트워크 모니터링 모범 사례: 추적 대상 및 사용 도구

SolarWinds NPM, PRTG 및 OpManager를 비교하여 명확한 장치 범위, 유용한 성능 지표, 실행 가능한 알림을 통해 실용적인 네트워크 모니터링 시스템을 구축하십시오.

기기 및 IP 주소 검색을 위한 최고의 네트워크 스캐너 도구 10가지

기기 및 IP 주소 검색을 위한 최고의 네트워크 스캐너 도구 10가지

빠른 장치 검색, 플랫폼 간 IP 스캔 및 엔터프라이즈 IPAM을 위한 네트워크 스캐너 도구를 비교하고, 각 옵션을 네트워크에 맞게 선택하는 방법에 대한 지침을 제공합니다.