首页
/ Script-Server中管理员用户无法查看Runner的解决方案

Script-Server中管理员用户无法查看Runner的解决方案

2025-07-09 14:18:52作者:邵娇湘

问题背景

在使用Script-Server项目(v1.18.0版本)时,管理员用户(@admin)无法查看和访问Runner脚本,除非在runner配置中显式地将这些管理员用户添加到allowed_users列表中。这显然不符合管理员应该拥有最高权限的预期行为。

配置分析

从用户提供的配置来看,存在一个常见的误解:认为@admin是一个预定义的管理员组。实际上,Script-Server中管理员组的正确名称应该是@admin_users。

错误配置示例

{
    "access": {
        "admin_users": ["admin", "admin1", "admin2"],
        "groups": {
            "operators": ["@admin", "operator1"]
        }
    }
}

正确配置方式

{
    "access": {
        "admin_users": ["admin", "admin1", "admin2"],
        "groups": {
            "operators": ["@admin_users", "operator1"]
        }
    }
}

解决方案

  1. 正确引用管理员组:在groups配置中,应该使用@admin_users而不是@admin来引用管理员组

  2. Runner配置优化:在runner的allowed_users中,可以使用@admin_users来授权所有管理员用户

{
  "name": "TEST",
  "script_path": "/opt/scripts/test.sh",
  "requires_terminal": true,
  "description": "test",
  "allowed_users": ["@operators", "@admin_users"]
}

技术原理

Script-Server的权限系统设计如下:

  1. admin_users:定义在配置中的管理员用户列表,这些用户自动属于@admin_users组

  2. 组引用:在配置中引用组时,必须使用@前缀加上组名

  3. 权限继承:通过将@admin_users组包含在其他组(如operators)中,可以实现权限继承

最佳实践建议

  1. 保持权限配置清晰,避免混合使用用户和组

  2. 对于需要管理员访问的runner,可以直接使用@admin_users组

  3. 定期检查权限配置,确保没有意外的权限限制

  4. 考虑使用更细粒度的权限控制,而不是简单地赋予所有管理员完全访问权限

通过正确理解和使用Script-Server的权限系统,可以有效地管理用户对runner脚本的访问权限,同时确保管理员拥有适当的控制权。

登录后查看全文
热门项目推荐
相关项目推荐