【问题标题】:Does Jenkins windows service need admin rights?Jenkins Windows 服务是否需要管理员权限?
【发布时间】:2018-08-07 08:44:37
【问题描述】:

出于安全原因,我们认为如果 Jenkins Windows 服务以没有管理员权限的用户身份运行会更好。但是,这会导致 Jenkins 服务器启动时出错:

java.io.IOException: Access is denied   at             
java.io.WinNTFileSystem.createFileExclusively(Native Method)    at     
java.io.File.createTempFile(Unknown Source)     at
hudson.util.AtomicFileWriter.<init>(AtomicFileWriter.java:142) 

Caused: 
    java.io.IOException: Failed to create a temporary file in C:\Program Files (x86)\Jenkins

用户(Windows 7,Active Directory 用户)拥有 Jenkins 文件夹的所有权限(不包括不能选择的“特殊权限”)。

以非管理员用户身份运行 Jenkins windows 服务(服务器以及其他计算机上的从属服务器)是否可能/合理?

【问题讨论】:

  • 是 jenkins slave agent 作为 Service 还是 jenkins server?
  • 实际上,错误来自服务器。我将其编辑到问题中。
  • 你可以按照 jenkins server 的 url 作为服务 wiki.jenkins.io/pages/viewpage.action?pageId=57183824 和 slave 你应该作为系统管理员做。
  • 您是否已成为 Jenkins 文件夹的用户创建者/所有者?
  • @Gaurav 我已经将 Jenkins 和从站安装为服务。当他们以具有管理员权限的用户身份运行时,它们运行良好。现在系统已经建立,我们想将用户更改为没有管理员权限的用户,这就是问题的开始。

标签: jenkins permissions continuous-integration


【解决方案1】:

我建议将 Jenkins 安装在辅助分区中,例如 G:\Jenkins

即使您没有二级分区,C:\Jenkins 也比C:\Program Files\JenkinsC:\Program Files(x86)\Jenkins 要好,以避免操作系统不必要地妨碍您。

有了这个,我总是将 Jenkins 服务设置为作为管理员组成员的用户(最好是密码不会过期的服务帐户)运行。

这样做通常可以避免许多不必要的烦人的权限问题,这些问题只会妨碍您并减慢您的进度。

需要注意的是,当涉及到 Windows 批处理步骤时,Jenkins 不会以管理员身份运行(至少自 2007 年以来我一直在使用 Jenkins)。

【讨论】:

  • 这并不能回答问题,而且似乎通常是不好的建议。是的,以管理员身份运行可以避免烦人的权限问题。
  • 安全性很烦人,但违反最小权限原则 (en.wikipedia.org/wiki/Principle_of_least_privilege) 并不是正确的解决方案。
【解决方案2】:

似乎允许 Jenkins 服务帐户访问“C:\Program Files\Jenkins”和 SeServiceLogonRight 就足够了。

【讨论】:

  • 我刚刚尝试过,Jenkins 无法自行重启(安装/升级插件后),所以如果这是您想要的功能,可能需要其他权限。
  • 嗯...我已经这样运行 Jenkins 好几个星期了。我不记得我在该上下文中配置的任何其他设置。
猜你喜欢
  • 2014-05-31
  • 2016-02-24
  • 2014-09-19
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多