【问题标题】:How to run jenkins's job as a specific user?如何以特定用户身份运行詹金斯的工作?
【发布时间】:2020-10-05 10:51:29
【问题描述】:

我公司的 Jenkins 集群以 root 用户身份运行构建。 如何配置集群/构建以作为不同的用户运行?没有root权限?

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    构建始终在运行节点代理进程的用户下运行。所以你的选择是

    • 指定不同的用户来连接节点,或
    • 在构建过程中切换到其他用户(例如,在 shell 构建步骤中通过 sudo)。这更灵活,但插件相关代码(如 SCM 结帐)仍将在 root 帐户下运行。

    【讨论】:

    • sudo 还需要在主机上正确设置 sudoers,或者可能在日志或属性中将密码暴露给 sudo。在某些时候,您可能还会遇到许可问题。有点惊讶 OP 将此标记为已接受的答案,但我想他们是决定者。
    • OP 没有询问其设置的安全隐患。虽然您的安全问题通常肯定是有效的,但此时不更改连接可能有充分的理由。以 root 用户身份调用 sudo(或 su)以切换到非 root 用户不会(进一步)影响安全性。
    • sudo 切换用户时会提示输入密码。
    • @ChangZhao:这不一定是真的;这取决于sudo的配置。
    【解决方案2】:

    Any agent can be configured 以 any 用户身份启动,所以这样做。

    建议您的公司 Jenkins 管理员立即将 Jenkins 更改为 NOT run as root。它不需要 root(可以是守护进程/服务)和 increases your risk exposure 。我们在 Unix 中使用 Java Service Wrapper (RUN_AS_USER=jenkins)。新的windows installer 会提示您输入要使用的帐户(尽管是默认帐户,但不要使用 System)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多