YuqiRealm.com

SUDO -U 更多内容请见:https://github.com/EmilyQiRabbit

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

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

阅读更多
版权声明:喵创文章, 盗版必究~ https://blog.csdn.net/u014328357/article/details/73867368
文章标签: Jenkins 权限管理
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭