我有一个 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>
最佳答案
我不知道你是否遇到了我遇到的同样问题,但请看这里: Jenkins CLI: using Anonymous permissions instead of the user defined ones
关于permissions - Jenkins CLI 异常 : missing Job/ExtendedRead permission,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19583443/