응 아니야

안녕하세요. 당이천입니다. 이번 글에서는 명령어 그중에서도 바닐라 명령어의 권한과 권한을 안전하게 나눠주는 방법, 종류에 대해서 알아봅니다. 모드나 플러그인에서 사용하는 towny.chat.mod 같은 그 권한을 말하는 글이 아닙니다.. 그와 같은 내용은 다음다다다다다다다다음쯤에 올라올 심화 글에서 확인하세요. 업로드 기준 최신 릴리즈는 1.18.1입니다.

 

1. 관리자(오피)와 권한 (operator, permission)

여느 게임처럼 마크도 서버가 승인한 유저를 서버의 관리자로 임명하는 기능이 있습니다. 마크에서 서버관리자는 오퍼레이터. 줄여서 오피라고 부릅니다. 오피는 레벨에 따라 주어진 권한이 다릅니다.

 

아래는 레벨별 권한이고, 굵은글씨는 멀티 전용입니다.

레벨 사용할 수 있는 명령어
0
일반유저
help, list, me, msg, seed(싱글), teammsg, tell, tm, trigger, w
1 0 레벨에
'스폰 보호 구역(spawn protection)'에서 때리거나 부수기 등 가능(우회) 추가 (명령어 추가x)
2 1 레벨에
seed(멀티), advancement, attribute, bossbar, clear, clone, data, datapack, defaultgamemode, difficulty, effect, enchant, execute, experience, fill, foceload, function, gamemode, gamerule, give, item, kill, locate, locatebiome, loot, particle, playsound, recipe, reload, say, schedule, scoreboard, setblock, setworldspawn, spawnpoint, spectate, spreadplayers, stopsound, summon, tag, team, teleport, tellraw, time, title, tp, weather, worldborder, xp 추가
3 2 레벨에
ban, ban-ip, banlist, debug, deop, kick, op, pardon, pardon-ip, setidletimeout, whitelist 추가
4 3 레벨에
jfr, perf, publish(싱글), save-all, save-off, save-on, stop 추가

오피라고 해서 다 같은 오피가 아닐 수 있는 겁니다. 1.7.10 무렵에 오피 레벨 시스템이 추가됐으므로 밑으로는 오피를 주면 모든 오피가 모든 명령어를 사용할 수 있습니다. (위험)

 

아쉽게도 싱글 플레이와 랜 서버에서는 오피의 레벨을 지정할 수 없습니다. 클라이언트와 하나 된 통합(내부에서 실행 중인) 서버 파일에 접근할 방법이 없기 때문입니다.

 

2. 오피는 주되 개지랄은 막아보자

오피를 줘야 더 재밌는 서버들이 있습니다. 꼽아보라면 평지 건축 서버나 명령어 서버 정도 뽑겠습니다. 근데 들어와서 하라는 건축은 안 하고 꼬장만 부리고 있으면 뒤처리만 하느라 서버를 연 보람이 없겠습니다. 그 개지랄을 막으려면 오피로 지정은 하되 서버에 피해가 오지 않는 수준의, 안전한 수준의 레벨로 주면 됩니다.

 

하지만 귀찮은 문제가 있습니다. 오피 명령어만으로는 오피를 받을 유저의 오피 레벨을 지정할 수가 없다는 겁니다. 인수라고는 달랑 하나 닉네임뿐인 멍청한 명령어이기 때문입니다. ([/op nickname 1] 이게 안됨 /op nickname 이게 끝, 공식 포럼, 레딧에도 불만 제기 있고 저도 있습니다..)

 

그래서 server.properties은 한 번, ops.json 파일은 여러 번 수정해야 합니다. 아래는 그 방법을 소개합니다. 만약 테러 걱정 없고 아는 사람하고 하는 서버라면 그냥 오피 막 주고 게임하시면 됩니다.

 

1. server.properties

줄수(282930)는 무시하십셔..

서버의 중요 설정을 저장하고 있는 파일입니다. 여기서 op-permission-level=4를 검색합니다. 기본값이 4로 저장되어 있으니 1 또는 2로 바꾸고 저장합니다. 이제 누가 오피를 받더라도 레벨이 1 또는 2로 적용됩니다.

 

이 파일과 json 파일들은 명령어로 내용을 바꿀 수 있는 것이 아니라면 서버에 실시간 적용이 안 됩니다. 서버를 켜기 전에 미리 바꾸거나 켜져 있다면 서버를 재시작해야 적용됩니다.

 

이제 /op 닉네임으로 오피를 주고 계속합니다.

2. ops.json

서버에서 오피를 주면 오피를 받은 유저가 ops.json 파일에 기록/저장됩니다. 아까 위에서 기본값을 1 또는 2로 바꿨기 때문에 오피를 받은 유저의 레벨은 사진과 다르게 1 또는 2 레벨일 것입니다.

 

그럼 여기서 "level": x,x값을 원하는 레벨로 바꾸고 저장하면 됩니다. 본인은 서버 최고관리자이기 때문에 4로 지정하면 되고, 나머지는 레벨별 권한 표를 보고 입맛에 맞게 지정해주시면 됩니다.

 

이 파일도 위에서 수정한 파일과 마찬가지로 수정/저장을 하더라도 서버에 실시간으로 적용되지 않기 때문에 서버를 켜기 전에 미리 바꾸거나 켜져 있다면 서버를 재시작해야 적용됩니다.

 

1. server.properties 기본 레벨을 1이나 2로 바꾸고

2. 서버를 켠 다음

3. 화이트리스트를 켜고

4. 오피를 나눠주고 서버를 닫고

5. 레벨을 입맛대로 바꾸고

6. 서버를 실행한다.

 

3. 명령어의 종류를 표로 모아서 보자.

마인크래프트 비공식 영문 위키에 자세히 기록되어있으므로 링크를 걸고 마칩니다.

 

다음글들은 명령어 하나에 글 하나씩 쓰는 무지성 블로그 확장용 글들이 되겠습니다.

감사합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band