![Jenkins 用户无法将文件复制到 Apache /var/www 文件夹-所有权限均适用](https://linux22.com/image/1604218/Jenkins%20%E7%94%A8%E6%88%B7%E6%97%A0%E6%B3%95%E5%B0%86%E6%96%87%E4%BB%B6%E5%A4%8D%E5%88%B6%E5%88%B0%20Apache%20%2Fvar%2Fwww%20%E6%96%87%E4%BB%B6%E5%A4%B9-%E6%89%80%E6%9C%89%E6%9D%83%E9%99%90%E5%9D%87%E9%80%82%E7%94%A8.png)
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
...
...
以下是我们迄今为止所做/尝试的事情:
将“jenkins”用户添加到 root 和 ubuntu 组。
ubuntu@ip-172-31-15-215:/var/www/html$ groups jenkins jenkins : jenkins root ubuntu
将 /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
夹)。