MC群组服开服教程系列四: 权限组件luckperms

MC群组服开服教程系列四: 权限组件luckperms

权限插件简介

在代理端的讲解中,我们知道可以通过配置中permissions配置片段将组和权限进行绑定,通过group配置完成用户和group的绑定。

在服务器中,用户执行一个指令或者完成一些操作,服务端需要判定用户的是否有权限的,如果一个一个给用户添加权限是非常麻烦的事情,通过设置组,给组设置默认的权限,后面我们只需要给用户添加到特定组即可,用户就可以拥有这个组的全部权限。

权限插件主流的有2个,groupmanager和 Luckperm,我这里推荐Luckperm,官方文档: luckperm 。

数据库的安装

这里我们选择mariadb server ,你可以选择mysql。基本一样的。

# 安装数据库软件yum install mariadb-server mariadb # 创建基本目录和授权# mkdir /home/mc/mysql/# chown mysql:mysql -R /home/mc/mysql

# 这里有需要的话,可以修改下配置文件,修改下数据库数据文件存放目录和最大连接数。 cat /etc/my.cnf.d/mariadb-server.cnf [mysqld] datadir=/home/mc/mysql/data socket=/home/mc/mysql/mysql.sock log-error=/home/mc/mysql/mariadb.log pid-file=/home/mc/mysql/mariadb.pid max_connections=10000 # 设置数据库开机启动 systemctl enable mariadb # 启动数据库 systemctl start mariadb # 查看启动状态 systemctl status mariadb

数据库启动成功后,剩余我们需要创建一个账号来进行管理,我这里推荐的一个数据库管理软件是dataGrip,下面我们创建一个mc账户。

-- 需要你在服务器的终端来执行的,输入mysql进入mysql的终端,然后执行如下sql语句CREATE DATABASE d_luckperms CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER 'mc'@'127.0.0.1' IDENTIFIED BY 'mc_tech_by_panda';

GRANT ALL ON *.* TO 'mc'@'127.0.0.1';

使用工具进行连接

设置一个ssh配置

设置使用ssh隧道,比较安全。

配置数据库账户和密码进行连接

数据库这块还挺复杂的, 有啥问题,可以在评论区进行讨论。

luckperms的安装

luckperm的下载地址 luckperm 可以进行下载,我们需要下载2个版本的, 一个是代理端需要的版本,一个是paper端需要的版本。

具体安装如下

我们进行文件的下载和进行配置变更。

# 下载bc端的权限组件

wget https://download.luckperms.net/1467/bungee/loader/LuckPerms-Bungee-5.4.58.jar

# 重启服务,我们重启下服务,让插件生存默认的配置文件

systemctl restart mc_wf

# 查看插件目录,我们可以已经生存的默认的配置文件了。需要等服务完整起来才有配置文件。

[root@mc plugins]# ll

total 1288

drwxr-xr-x 4 root root 106 1月 14 17:10 LuckPerms

-rw-r--r-- 1 root root 1315643 1月 6 06:35 LuckPerms-Bungee-5.4.58.jar

# 进入插件目录

cd LuckPerms/

# 保持服务的默认配置文件

cp config.yml config.yml.default

修改配置和more配置对比图如下。

这里先简单说明下对应的配置说明:

server: 制定server name 方便后面授权可以控制到具体分区基本授权的。比如说主城可以设置为zc。

storage-method: 就是权限信息存放的位置,我们是mariadb。

address: 数据库的地址

database: 使用哪个数据库

登陆游戏测试下

我们在游戏内执行下/server 指令,发现提示没有权限执行。那是因为原来代理端使用的静态的授权方式,我们使用数据库后,没有给他默认的权限,他就没有办法校验我们通过了。

我们需要创建几个分组,然后给分组设置下不同的权限即可。在做权限添加之前,我们首先需要再控制台给我们自己(也就是腐竹自身)一个全部的权限。

# 给我们自己的账户添加一个权限组的全部权限, 注意了,在代理端执行lp命令需要使用lpb的。避免操作权限到特定分区的。

[root@mc ~]# /etc/init.d/mc_wf conn "lpb user panda permission set luckperms.* true"

mc=wf

# 给我们账户添加全部权限

[root@mc ~]# /etc/init.d/mc_wf conn "lpb user panda permission set * true"

mc=wf

下面我们创建一个默认组

# 先创建我们几个预设的组。 其中default组默认就存在了,我们就不创建了。

/lpb creategroup owner 10000 Owner

/lpb creategroup op 1000 OP

/lpb creategroup svip 200 SVIP

/lpb creategroup vip 100 VIP

/lpb creategroup lv3 3 Lv3

/lpb creategroup lv2 2 Lv2

/lpb creategroup lv1 1 Lv1

# 修改default的显示名字为Lv0,保持和其他的等级显示一致。

/lpb group default setdisplayname Lv0

# 创建几个实际的权限组。wf:代理端权限分组

/lpb creategroup g-wf 0 g-wf

/lpb group g-wf permission set bungeecord.command.server true

/lpb group g-wf permission set bungeecord.command.list true

# 创建管理组

/lpb creategroup ga-wf 0 ga-wf

/lpb group ga-wf permission set bungeecord.command.* true

# 设置权限组的依赖关系

/lpb group default parent add g-wf

/lpb group lv1 parent add default

/lpb group lv2 parent add lv1

/lpb group lv3 parent add lv2

/lpb group vip parent add lv3

/lpb group svip parent add vip

/lpb group op parent add vip# 设置组的前缀,后面会大量需要的/lp group owner meta addprefix 10000 "&4&l[Owner]&r"/lp group op meta addprefix 1000 "&4&l[OP]&r"/lp group svip meta addprefix 200 "&c&l[SVIP]&r"/lp group vip meta addprefix 100 "&c&l[VIP]&r"/lp group lv3 meta addprefix 3 "&7&l[Lv3]&r"/lp group lv2 meta addprefix 2 "&7&l[Lv2]&r"/lp group lv1 meta addprefix 2 "&7&l[Lv1]&r"/lp group default meta addprefix 0 "&7&l[Lv0]&r"

我们给其他的分区也设置下

我们目前有个主城分区、登陆分区、生存1区,我们进行一下设置。

# 下载文件

wget https://download.luckperms.net/1467/bukkit/loader/LuckPerms-Bukkit-5.4.58.jar# 编辑权限的配置文件, 类似代理端的配置,注意server修改为分区的简写名字

[root@mc LuckPerms]# vim config.yml

# 重启登录分区

[root@mc LuckPerms]# systemctl restart mc_dl

# 查看当前目录

[root@mc LuckPerms]# pwd

/home/mc/instances/dl/plugins/LuckPerms

# 将插件和配置文件目录,给主城复制一份。

[root@mc LuckPerms]# cp -r /home/mc/instances/dl/plugins/LuckPerms* /home/mc/instances/zc/plugins/

# 重启主城

[root@mc LuckPerms]# systemctl restart mc_zc

关于luckperm授权和组创建的这个部分,我们这里不需要做,因为我们的分区连接的是同一份数据库,使用的同一个存储的,在一个分区做操作就可以了。其他的分区都是可以获取到最新的数据的。

Luckperms指令使用说明

官方帮助文档在这里 luckperm

权限树查看

游戏内执行/lp tree 即可,服务会给你提供一个url 你打开url即可看到当前服务的权限树列表

权限树图

编辑权限

游戏内输入 /lp editor 即可

通过图形化界面,可以直接给添加组,给组添加权限,不过我个人不喜欢这种web方式。喜欢指令操作方式的,可以看看下面的。

用户组的创建

/lpb creategroup 组名字 组的权重 组显示名字

/lpb creategroup lv3 3 Lv3

用户组权限的添加

权限添加有2种,临时的和永久的。

# 永久权限添加

/lp group 要修改的组名字 permission set 权限节点 true

/lp group default permission set bukkit.broadcast true

# 临时权限添加

/lp group 要修改的组名字 permission settemp 权限节点 true 时间

/lp group default permission settemp bukkit.broadcast true 7d

# 限定上下文的,比如给用户在特定分区有特定节点的权限。

/lp group default permission set bukkit.broadcast true server=dl

用户组权限组的继承

我给lv1设置好权限,其实我不想再给lv2重复设置权限,我只想让lv2继承lv1的权限,然后我额外再给lv2一些权限的话,我们就可以使用继承能力。

/lpb group lv2 parent add lv1

用户组的调整

我想将用户从lv1调整到lv2组,怎么操作?

# 不建议这种

/lp user panda parent set <目标组>

# 推荐

/lp user panda parent add lv2

/lp user panda parent remove lv1

权限的debug

不知道一个操作需要什么权限了,可以如下方式获取指令需要的权限节点是啥。

/lp verbose record [筛选条件]

执行一系列需要权限的操作

/lp verbose paste

打开生成的 URL

常见问题

相关推荐

《森林》天坑怎么探索 天坑探索指南
365bet官网体育

《森林》天坑怎么探索 天坑探索指南

07-01 👁️ 9241
全民乐棋牌手机版
365名品汇个人注册推荐码

全民乐棋牌手机版

08-16 👁️ 4518
计算机电脑培训学校排名:小白怎么挑才不踩坑?
365提现一般多久到账

计算机电脑培训学校排名:小白怎么挑才不踩坑?

08-14 👁️ 2055