Jenkins 用户无法将文件复制到 Apache /var/www 文件夹-所有权限均适用

Jenkins 用户无法将文件复制到 Apache /var/www 文件夹-所有权限均适用

Jenkins 安装在 Ubuntu 18.04 上并成功运行。

作为项目构建过程的一部分,我们需要将构建的文件复制到/var/www/html(Apache 文件夹)下的特定文件夹。我们的构建/执行 shell:

npm install
ng build --prod
cp -R /var/lib/jenkins/workspace/kagi-core/dist/core/* /var/www/html/kagi-core/

但是 jenkins build 在最后的复制命令中失败,出现以下错误:

23:18:10 + cp -R /var/lib/jenkins/workspace/kagi-core/dist/core/3rdpartylicenses.txt /var/lib/jenkins/workspace/kagi-core/dist/core/assets ...
23:18:10 cp: cannot create regular file '/var/www/html/kagi-core/3rdpartylicenses.txt': Permission denied
...
...

以下是我们迄今为止所做/尝试的事情:

  1. 将“jenkins”用户添加到 root 和 ubuntu 组。

     ubuntu@ip-172-31-15-215:/var/www/html$ groups jenkins
     jenkins : jenkins root ubuntu
    
  2. 将 /var/www/html/kagi-core 文件夹的权限更改为“jenkins”用户

     drwxr-xr-x  3 ubuntu jenkins 4096 Sep 17 21:36 www
     ..
     drwxr-xr-x  3 ubuntu jenkins 4096 Sep 18 21:04 html
     ..
     drwxrwxrwx 4 ubuntu jenkins  4096 Sep 18 21:18 kagi-core
    

我们遗漏了什么?感谢任何帮助!

答案1

在尝试修复此问题时,找到了解决方案。在此添加以供参考:

仔细观察,文件夹的权限/var/www如下

drwxr-xr-x 3 ubuntu jenkins 4096 Sep 17 21:36 www

但相反,它们应该反过来(允许“jenkins”用户进入默认组):

drwxr-xr-x 3 jenkins ubuntu 4096 Sep 17 21:36 www

我们还将组重置为默认值root

因此解决问题的命令是

cd /var
sudo chown -R jenkins:root www/

此后,jenkins 构建成功(能够复制到文件/var/www/html夹)。

相关内容