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

时间:2022-05-02 16:16:48

关于如何配置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文件才能生效。