我有一个构建 Maven 项目的 Jenkins 服务器。当 Jenkins 构建此项目时,$WORKSPACE
下的所有构建工件都具有文件权限 jenkins:jenkins
。
在后步骤中,这些构建工件应被复制到/srv/myproject/
,Tomcat 实例从那里为构建的工件提供服务。 /srv/myproject/
归 tomcat7/tomcat7
所有。
此后步骤失败,Jenkins 报告 由于 java.io.FileNotFoundException/srv/myproject/somefile(权限被拒绝),无法将 $WORKSPACE/somefile 复制到/srv/myproject/somefile
— Linux用户 jenkins
不允许修改 Linux 用户 tomcat7
拥有的文件。
如何更改 Jenkins 构建工件的所有权?我正在寻找考虑到安全性的解决方案,例如给予 jenkins
sudoer 权限似乎并不明智。此外,将 srv/myproject/**
的所有权更改为 jenkins:jenkins
感觉更像是一种解决方法。
最佳答案
您可以考虑为这两个用户创建一个组,我们称之为ftp
。
您可以将 /srv/myproject/
文件夹的所有权更改为 ftp
组:
sudo chown -R :ftp /srv/myproject
将用户 jenkins
和 tomcat7
添加到 ftp
组:
sudo usermod -a -G ftp jenkins
sudo usermod -a -G ftp tomcat7
现在 jenkins
和 tomcat7
用户都应该能够访问 /srv/myproject
。
关于linux - 更改 Jenkins 构建工件文件所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34001424/