3

我有一个 Jenkins 用户,我想授予对 Jenkins 实例运行远程 CLI 的权限。第一个命令是获取 config.xml:

java -jar jenkins-cli.jar -s http://jenkins:8080/hudson get-job thejob

但是,当他调用该命令时,它会失败并显示:

Caught: java.lang.RuntimeException: \
  hudson.security.AccessDeniedException2: \
  USER is missing the Job/ExtendedRead permission \
  at hudson.security.ACL.checkPermission(ACL.java:54) 

我已授予在我们基于矩阵的安全网格中执行脚本、读取/创建/配置作业等的权利。在网格中有另一个用户具有完全相同的权限,但对于这个另一个用户,一切正常。

我没有安装任何插件“扩展读取权限”或“只读配置”。

我不明白为什么这个新用户会失败。建议任何人?

2 个用户 config.xml 文件的区别:

<com.cloudbees.plugins.credentials.UserCredentialsProvider_-UserCredentialsProperty plugin="credentials@1.4">
    <credentials/>

与:

<com.cloudbees.plugins.credentials.UserCredentialsProvider_-UserCredentialsProperty plugin="credentials@1.8.3">
    <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash"/>

最后一个:

<hudson.security.HudsonPrivateSecurityRealm_-Details>
  <passwordHash>some values...</passwordHash>
</hudson.security.HudsonPrivateSecurityRealm_-Details>
4

2 回答 2

1

我不知道您是否遇到与我相同的问题,但请看这里: Jenkins CLI:使用匿名权限而不是用户定义的权限

于 2015-02-20T09:40:51.153 回答
0

看起来您已经升级了凭证插件,但不知何故第一个用户没有更新其记录。如果可以的话,我建议您尝试更新到最新版本(对我来说是 1.9.1)。您还可以手动编辑用户记录并在其中强制使用真实的插件版本号(然后重新启动 Jenkins),看看它是否更准确地处理了这个用户。

于 2013-11-05T11:55:09.600 回答