O usuário Jenkins não pode copiar arquivos para a pasta Apache/var/www - todas as permissões apropriadas

O usuário Jenkins não pode copiar arquivos para a pasta Apache/var/www - todas as permissões apropriadas

Jenkins está instalado no Ubuntu 18.04 e funcionando com sucesso.

Como parte do processo de construção do nosso projeto, precisamos copiar os arquivos construídos para uma pasta específica em /var/www/html(pasta Apache). Nosso shell de construção/execução:

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

Mas a compilação do jenkins falha no comando de cópia final com os seguintes erros:

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
...
...

Aqui está o que fizemos/tentamos até agora:

  1. Adicionado usuário "jenkins" aos grupos root e ubuntu.

     ubuntu@ip-172-31-15-215:/var/www/html$ groups jenkins
     jenkins : jenkins root ubuntu
    
  2. Permissões alteradas nas pastas /var/www/html/kagi-core para o usuário “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
    

O que estamos perdendo? Agradeço qualquer ajuda!

Responder1

Ao tentar consertar isso, encontrei a solução. Adicionando aqui para referência:

Ao observar atentamente, as permissões para /var/wwwpastas, elas são tão

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

mas em vez disso, eles deveriam ser o contrário (permitir o usuário "jenkins" no grupo padrão):

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

Também redefinimos o grupo para o padrãoroot

Então o comando que resolveu o problema foi

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

Depois disso, as compilações do Jenkins foram bem-sucedidas (capazes de copiar para a /var/www/htmlpasta).

informação relacionada