Apache 폴더의 Jenkins 권한

Apache 폴더의 Jenkins 권한

비슷한 문제가 있습니다. 대상 디렉터리에 대한 권한이 없는 경우 Jenkins "빌드 후" 작업으로 파일을 복사하는 방법

Jenkins 작업 공간에서 다음으로 파일을 이동/복사/rsync할 의향이 있습니다.

/var/www/응용 프로그램

권한이 다음으로 설정됨

아파치:아파치

그룹에 Jenkins를 추가했습니다. 아파치, 그러나 jenkins 인스턴스는 파일을 /var/www/app에 복사할 수 없습니다.

또한 /var/www/app의 권한을 apache:jenkins로 설정하려고 시도했지만 Jenkins는 여전히 다음 오류를 뱉어냅니다. 권한이 거부되었거나 작업이 허용되지 않습니다.

추신: 운영 체제가 centOS라는 사실을 추가하는 것을 잊었습니다.)

편집 1: 이것은 실행 중인 Jenkins 스크립트의 로그입니다.

[작업 공간] $ /bin/sh -xe /tmp/hudson1379987233097some_more_numbers.sh + sh /path_to_sh_script/script.sh 증분 파일 목록 보내기

애플리케이션/

rsync: '/var/www/app/application'에 대한 권한을 설정할 수 없습니다: 작업이 허용되지 않습니다. (1)

이것은 스크립트 자체입니다 :)

#!/bin/bash

rsync -avzh /path/to/jenkins/jobs/app/workspace/default/application /var/www/app ;

rsync -avzh /path/to/jenkins/jobs/app/workspace/default/library /var/www/app ;

rsync -avzh /path/to/jenkins/jobs/app/workspace/default/public /var/www/app;

답변1

댓글에서 길고 유익한 토론을 마친 후 다음과 같은 내용이 있습니다.이 링크사용자가 추가된 문제를 해결했습니다.

--no-perms --omit-dir-times

옵션 에 rsync.

문제를 해결하기 위한 초기 시도:

짧은 시간에 보안 문제에 관심이 없다면 이것을 시도해 볼 수 있다고 생각합니다

chmod a+rwx /var/www/app 

그런 다음 해당 디렉토리에 쓰기를 시도합니다. 하위 디렉터리가 있는 경우 재귀적으로 수행해야 합니다.

chmod --recursive a+rwx /var/www/app 

성공하면 점차적으로 권한 제거를 시작할 수 있으며, 이는 문제를 정확히 파악하는 데 도움이 됩니다.

사용자 jenkins가 이미 Apache의 그룹 구성원인지 확인하십시오.

groups apache

답변2

비슷한 문제가 있습니다. Jenkins의 localhost에서/var/www에 쓰고 싶습니다. 내 서버에서 /var/www는 www-data의 소유이므로 www-data 그룹에 jenkins를 추가하고 /var/www 그룹을 쓰기 가능하게 만들었지만 권한 거부 오류가 계속 발생합니다. Jenkins 서비스를 다시 시작하면 문제가 해결되었습니다.

답변3

먼저 SSH 및 ssh-key Exchange를 사용하여 Linux 또는 Apache 서버를 Jenkins 서버에 추가하세요. 그리고 사용자 이름 jenkin(unix 사용자)을 사용하여 linux/apache 서버에 사용자를 만듭니다. SSH를 사용하여 파일을 가져오거나 밀어넣는 경우 jenkin은 "jenkin"을 표준 사용자로 사용하기 때문입니다.

unix의 jenkin 그룹에 Apache 사용자를 추가하는 것이 도움이 될 수 있습니다.

관련 정보