首页 > 解决方案 > Jenkins Windows 服务是否需要管理员权限?

问题描述

出于安全原因,我们认为如果 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 服务(服务器以及其他计算机上的从属服务器)是否可能/合理?

标签: jenkinspermissionscontinuous-integration

解决方案


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

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

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

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

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


推荐阅读