For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /admin/rbac.md.

权限与角色

授权模型

权限 Permission → 角色 Role → 分组 Group → 用户 User
  • 平台提供内置权限点,可在后台查看用途和编辑描述。
  • 每个分组关联一个角色;一个角色包含多个权限。
  • 一个用户可加入多个分组,最终权限取各组角色的并集。界面不直接向用户分配多个角色。
  • 比赛中的队伍与 RBAC 分组是不同概念,加入参赛队伍不会自动授予后台权限。

内置角色与分组

名称默认用途
admin全部平台管理和选手权限
organizer赛事、题目、队伍、公告、作弊以及比赛内镜像/靶机/生成器管理,同时具备选手权限
user个人设置、参赛、队伍、题目、提交、靶机和题解权限

平台提供与内置角色同名的默认分组。内置角色的权限会在启动时补齐;如需精细控制授权,请创建自定义角色和分组。

organizer 可管理平台上的比赛,授权范围不限于该用户创建的比赛。分配此角色前请确认管理范围。

配置步骤

  1. 在「RBAC → 角色」创建自定义角色。
  2. 打开角色的权限管理,选择需要的权限点。
  3. 在「分组」创建组并选择该角色。
  4. 在组成员管理中添加用户。
  5. 使用目标用户验证后台导航与具体操作。

导航会显示用户有权访问的页面。查看列表、读取详情和修改内容可能需要不同权限;配置自定义角色时,请按实际操作同时勾选。访问 RBAC 页面还需要查看角色列表的权限。

常用权限范围

以下 * 只是说明一组权限,不是可提交的通配符:

场景主要权限
个人信息与邮箱验证self:read、self:update、self:activate
参赛user:contest:*、user:team:*、user:notice:list
解题与题解user:challenge:*、user:victim:control、user:writeup:*
题库与测试admin:challenge:*
比赛与比赛题目admin:contest:*、admin:contest_challenge:*、admin:contest_challenge_flag:*
队伍与题解admin:team:*、admin:team_writeup:list/read、admin:contest_writeup:export
全局资源admin:image:pull、admin:victim:control、admin:generator:control、admin:traffic:read
比赛资源admin:contest_image:pull、admin:contest_victim:control、admin:contest_generator:control、admin:contest_traffic:read
SMTPadmin:smtp:*,其中发测试邮件为 admin:smtp:test
定时任务admin:cronjob:list、admin:cronjob:update
系统配置admin:system:read/update/restart

完整权限名称和用途可在后台「权限」页查看。登录用户需保留 self:read,用于读取个人信息和正常使用平台。