LuckPerms/문제 해결
이 문서는 LuckPerms에서 권한이 의도대로 동작하지 않을 때의 조사 절차를 다룬다.
권한 문제는 추측으로 설정을 바꾸면 오히려 구조가 망가진다. LuckPerms는 실제 판정 과정을 확인할 수 있는 도구를 제공하므로, 무엇이 어떻게 판정되었는지 먼저 본다.
조사 순서
1. 어떤 노드를 검사하는지 확인한다
권한 이름을 모르는 것이 원인인 경우가 많다. verbose로 실제 검사되는 노드를 확인한다.[1]
/lp verbose record PlayerName
기록을 켠 상태에서 문제가 되는 동작을 재현한 뒤 종료하고 결과를 확인한다.
/lp verbose upload
특정 명령만 검사하려면 다음을 쓴다.
/lp verbose command PlayerName /검사할명령
필터 없이 오래 켜 두지 않는다. 권한 검사는 매우 자주 일어나므로 기록이 급격히 늘어난다.
2. 판정 결과를 확인한다
노드를 알았다면 최종 판정을 직접 본다.
/lp user PlayerName permission check worldedit.selection.pos
3. 어디서 온 값인지 추적한다
/lp user PlayerName info
상속 그룹, 주 그룹, 메타데이터를 확인한다. 예상한 그룹에 속해 있는지, 임시 노드가 만료되지 않았는지 본다.
증상별 원인
| 증상 | 흔한 원인 | 확인 방법 |
|---|---|---|
| 권한을 줬는데 동작하지 않음 | 노드 이름이 다름 | /lp verbose로 실제 검사 노드 확인
|
| 그룹에 넣었는데 권한이 없음 | 상위 그룹에서 false로 거부됨 |
/lp user … info로 상속 경로 확인
|
| 특정 월드에서만 동작하지 않음 | 컨텍스트가 붙어 있음 | 노드에 world=가 있는지 확인
|
| 프록시 네트워크에서 일부 서버만 다름 | server= 컨텍스트 또는 동기화 지연 |
/lp networksync 실행
|
| 잠시 뒤 권한이 사라짐 | 임시 권한 만료 | permission info에서 만료 시각 확인
|
| 접두사가 표시되지 않음 | 표시할 플러그인이 없음 | LuckPerms는 채팅 형식을 바꾸지 않는다 |
| 여러 접두사 중 원하지 않는 것이 표시됨 | 우선순위 숫자 | 숫자가 큰 쪽이 표시된다 |
| 경제·상점 플러그인이 권한을 못 읽음 | Vault 연동 문제 | Vault 문서 참고 |
| 다른 서버에 변경이 반영되지 않음 | 메시징 서비스 미설정 | LuckPerms/데이터 이전 참고 |
| 콘솔에서만 되고 게임에서 안 됨 | 콘솔은 모든 권한을 가진다 | 실제 계정으로 시험 |
set false와 unset
가장 자주 혼동되는 부분이다.
| 동작 | 결과 |
|---|---|
permission unset <노드> |
직접 지정을 없애고 상속값으로 되돌린다 |
permission set <노드> false |
상속값을 덮어써 거부한다 |
권한을 회수할 때 set false를 쓰면 그 사용자만 특별히 거부된 상태가 남는다. 나중에 그룹 권한을 정리해도 이 거부가 계속 남아 원인을 찾기 어려워진다. 되돌리려면 unset을 쓴다.
와일드카드
worldedit.*처럼 넓은 범위를 부여하면 이후 그 플러그인에 추가되는 모든 권한이 자동으로 포함된다. 편리하지만 의도하지 않은 기능까지 열릴 수 있다.
특히 luckperms.*는 권한 체계 자체를 바꿀 수 있는 권한이므로 신중하게 다룬다. 관리자에게도 필요한 하위 노드만 주는 편이 안전하다.
데이터가 이상할 때
저장소에서 데이터를 다시 읽는다.
/lp sync
여러 서버를 운영한다면 전체에 전파한다.
/lp networksync
구조를 크게 바꾸기 전에는 반드시 내보내기로 백업한다.
/lp export backup-20260806