AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 923571
Accepted
Moshe Katz
Moshe Katz
Asked: 2018-07-26 18:48:33 +0800 CST2018-07-26 18:48:33 +0800 CST 2018-07-26 18:48:33 +0800 CST

进程重启后 Jenkins PWAuth 不起作用

  • 772

我在 Ubuntu 18.04 服务器上运行 Jenkins(当前为 v2.134,始终从 Jenkins Debian/Ubuntu 存储库更新)。它被配置为使用pwauth插件对系统帐户进行​​身份验证。

这是pwauth插件的配置部分(通过更改 GUI 中的设置生成):

  <securityRealm class="hudson.plugins.pwauth.PWauthSecurityRealm" plugin="[email protected]">
    <pwauthPath>/usr/sbin/pwauth</pwauthPath>
    <whitelist></whitelist>
    <enableParamAuth>false</enableParamAuth>
    <idPath>/usr/bin/id</idPath>
    <groupsPath>/usr/bin/groups</groupsPath>
    <catPath>/bin/cat</catPath>
    <grepPath>/bin/grep</grepPath>
  </securityRealm>

它使用矩阵授权策略,具有一个名为jenkinsadmins具有完全权限的组(下面的配置也是通过更改 GUI 中的设置生成的)。为了允许用户登录 Jenkins,我们只需将他们添加到这个 Unix 组:

  <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy">
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Create:jenkinsadmins</permission>
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Delete:jenkinsadmins</permission>
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.ManageDomains:jenkinsadmins</permission>
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Update:jenkinsadmins</permission>
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.View:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Build:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Configure:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Connect:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Create:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Delete:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Disconnect:jenkinsadmins</permission>
    <permission>hudson.model.Hudson.Administer:jenkinsadmins</permission>
    <permission>hudson.model.Hudson.Read:jenkinsadmins</permission>
    <permission>hudson.model.Item.Build:jenkinsadmins</permission>
    <permission>hudson.model.Item.Cancel:jenkinsadmins</permission>
    <permission>hudson.model.Item.Configure:jenkinsadmins</permission>
    <permission>hudson.model.Item.Create:jenkinsadmins</permission>
    <permission>hudson.model.Item.Delete:jenkinsadmins</permission>
    <permission>hudson.model.Item.Discover:jenkinsadmins</permission>
    <permission>hudson.model.Item.Move:jenkinsadmins</permission>
    <permission>hudson.model.Item.Read:jenkinsadmins</permission>
    <permission>hudson.model.Item.ViewStatus:anonymous</permission>
    <permission>hudson.model.Item.ViewStatus:jenkinsadmins</permission>
    <permission>hudson.model.Item.Workspace:jenkinsadmins</permission>
    <permission>hudson.model.Run.Delete:jenkinsadmins</permission>
    <permission>hudson.model.Run.Update:jenkinsadmins</permission>
    <permission>hudson.model.View.Configure:jenkinsadmins</permission>
    <permission>hudson.model.View.Create:jenkinsadmins</permission>
    <permission>hudson.model.View.Delete:jenkinsadmins</permission>
    <permission>hudson.model.View.Read:jenkinsadmins</permission>
    <permission>hudson.scm.SCM.Tag:jenkinsadmins</permission>
    <permission>org.jenkins.ci.plugins.jobimport.JobImportAction.JobImport:jenkinsadmins</permission>
  </authorizationStrategy>

问题是每次我重新启动 Jenkins(包括在服务器重新启动、Jenkins 更新或更改插件后自动重启)时,我都无法再记录它 - Jenkins 告诉我“用户名或密码无效”。

但是,我知道此配置确实有效,因为我可以进入config.xml并更改<useSecurity>为false禁用所有登录要求(并重新启动),然后返回设置并重新应用这些设置,在这种情况下它会立即提示我登录我的用户名和密码被接受!

我检查了日志,但没有发现任何相关内容。

我也知道它pwauth本身工作正常,因为我可以以 Jenkins 用户身份登录到 shell 并pwauth手动运行,它可以按预期工作。

我怎样才能弄清楚为什么这个配置似乎只在服务器重新启动之前才有效?

authentication
  • 2 2 个回答
  • 505 Views

2 个回答

  • Voted
  1. amoskahiga
    2021-02-13T14:23:08+08:002021-02-13T14:23:08+08:00

    我在使用较新的 v2.263.4 时遇到了同样的问题。我能够通过在默认预期位置创建指向 pwauth 的符号链接来解决它:/usr/local/bin/pwauth。似乎在重新启动时,Jenkins 在工厂默认路径而不是自定义用户指定的路径中搜索 pwauth。似乎是一个错误。

    • 1
  2. Best Answer
    Moshe Katz
    2019-11-01T08:31:45+08:002019-11-01T08:31:45+08:00

    我再次测试,从 Jenkins v2.202 开始,它工作正常。我没有更改任何我知道的设置,并且我在最近几个版本的更改日志中看不到任何内容,但可能是有一个错误被意外修复。

    • 0

相关问题

  • 如何在使用 RPC over HTTPS 时停止 Outlook 2007 要求提供凭据

  • 针对 Leopard 服务器的 OS X 登录身份验证

  • 允许用户更改其 Active Directory 密码的 Web 界面

  • MOSS 2007 无法使用 ActiveDirectoryMembershipProvider 配置表单身份验证

  • 通过 VPN 更改 Active Directory 密码

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve