关闭

Jenkins -- 通过config.xml操作用户权限

标签: Jenkins权限管理
809人阅读 评论(4) 收藏 举报

关于如何配置Jenkins权限,网上随便谷百下“Jenkins权限配置”就有大量文章,在这里就不重复说明了。
总结一下就是,Jenkins是通过将权限赋予给角色,再将角色分配给用户来配置用户权限的。

在这里,我想说的是如何通过直接操作服务器上的config.xml文件来将角色分配给用户。

这个文件在服务器的地址为 Jenkins_home/config.xml,示例如下:

<useSecurity>true</useSecurity>
<authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy">
  <roleMap type="globalRoles">
    <role name="admin" pattern=".*">
      <permissions>
        <permission>hudson.model.Hudson.Read</permission>
        <permission>hudson.model.Hudson.Administer</permission>
        <permission>hudson.model.View.Delete</permission>
        ...
      </permissions>
      <assignedSIDs>
        <sid>admin</sid>
      </assignedSIDs>
    </role>
    <role name="anonymous" pattern=".*">
      <permissions>
        <permission>hudson.model.Hudson.Read</permission>
      </permissions>
      <assignedSIDs>
        <sid>anonymous</sid>
      </assignedSIDs>
    </role>
  </roleMap>
  <roleMap type="projectRoles">
    <role name="Online Program" pattern="GeoQPortal|GeoQUserPortal">
      <permissions>
        <permission>hudson.model.Item.Read</permission>
        <permission>hudson.model.Item.Build</permission>
        ...
      </permissions>
      <assignedSIDs>
        <sid>caox</sid>
        <sid>wangwh</sid>
        <sid>yuh</sid>
        <sid>chenjj</sid>
        <sid>lim</sid>
        <sid>zhangy</sid>
      </assignedSIDs>
    </role>
    <role name="test" pattern="Compress">
      <permissions>
        <permission>hudson.model.Item.Delete</permission>
        <permission>hudson.model.Item.Read</permission>
        ...
      </permissions>
      <assignedSIDs>
        <sid>wangwh</sid>
      </assignedSIDs>
    </role>
  </roleMap>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
  <disableSignup>false</disableSignup>
  <enableCaptcha>false</enableCaptcha>
</securityRealm>

1、在 authorizationStrategy 标签下,有两个roleMap,分别是 globalRoles 和 projectRoles ,它们代表了全局角色和项目角色。(PS:项目角色仅具有查看项目的权限,而不具有查看Jenkins系统的权限。)

2、在 roleMap 中,role 标签代表的就是角色,下面的permission标签就是角色拥有的具体的权限。比如:

hudson.model.Hudson.Administer

上面这个是对Jenkins系统的管理权限

hudson.model.Hudson.Read

而这个是对Jenkins系统的可视权限

等等,就不一一列举了。

3、assignedSIDs 标签内,是一个用户sid列表,在这个列表中的用户,都将被分配这个角色。
因此,如果某个用户需要什么权限,则需要将权限加入到role标签下的permission列表中,然后将用户sid写入assignedSIDs,并重启服务器。这一步很重要,只有重启服务器,重新配置的config文件才能生效。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:144156次
    • 积分:4806
    • 等级:
    • 排名:第6644名
    • 原创:337篇
    • 转载:47篇
    • 译文:6篇
    • 评论:24条