Jenkins 사용자는 파일을 Apache /var/www 폴더에 복사할 수 없습니다. 모든 권한이 적절합니다.

Jenkins 사용자는 파일을 Apache /var/www 폴더에 복사할 수 없습니다. 모든 권한이 적절합니다.

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" 사용자를 추가했습니다.

     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폴더에 복사할 수 있음).

관련 정보