linux - 更改 Jenkins 构建工件文件所有权

标签 linux jenkins

我有一个构建 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

将用户 jenkinstomcat7 添加到 ftp 组:

sudo usermod -a -G ftp jenkins
sudo usermod -a -G ftp tomcat7

现在 jenkinstomcat7 用户都应该能够访问 /srv/myproject

关于linux - 更改 Jenkins 构建工件文件所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34001424/

相关文章:

jenkins\强制项目在带有输入参数的特定从属设备上运行?

linux - 是什么在我的笔记本电脑上启动这个 docker 进程?

c - 编译共享库时 -fPIC 是什么意思

linux - Linux 中 shell 脚本的更改不会刷新

Maven 和 Jenkins - 'mvn' 未被识别为内部或外部命令,

unit-testing - 如何解决.net测试卡在 "Starting test execution, please wait..."上

linux -/proc/<pid>/map 显示比 ldd for busybox 更多的共享库

c - 如何使用来自 child 的命名信号量

sql - 如何从 <<EOF 捕获结果并放入 bash 中的变量?

scala - 加速 SBT 组装