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

时间:2019-09-19 04:34:16

标签: apache ubuntu jenkins ubuntu-18.04

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

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

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

但是jenkins构建在最终的复制命令失败,并出现以下错误:

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 个答案:

答案 0 :(得分:0)

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

仔细观察ngOnInit() { self.awardsService.CurrentAwardsSub.pipe(takeUntil(self._subRelease)) .subscribe(award => { self.AwardInfo = award; } } buttonClick() { //while loop does not work, but is there a way to do this idea? while (self.AwardInfo == null) { } //null reference exception let id = self.AwardInfo.AwardID; } 文件夹的权限,就像

/var/www

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

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

我们还将群组重置为默认drwxr-xr-x 3 jenkins ubuntu 4096 Sep 17 21:36 www

所以解决该问题的命令是

root

此后,jenkins构建成功(可以复制到cd /var sudo chown -R jenkins:root www/ 文件夹)。