대상 디렉터리에 대한 권한이 없는 경우 Jenkins "빌드 후" 작업으로 파일을 복사하는 방법

대상 디렉터리에 대한 권한이 없는 경우 Jenkins "빌드 후" 작업으로 파일을 복사하는 방법

다음 사용자 "architecture"가 있습니다.

  1. 루트 액세스가 비활성화되었습니다.
  2. admin 사용자는 홈 디렉터리에만 액세스할 수 있습니다.
  3. Apache는 루트 서비스로 실행됩니다(루트는 웹 서버 파일에 액세스할 수 있는 유일한 서비스입니다).
  4. "관리자" 권한으로 프로젝트를 구축하는 Jenkins CI를 설치했습니다.

빌드 후 작업으로 최신 빌드 파일을 내 웹서버 위치에 복사하고 싶습니다. "루트" 사용자만 내 대상 디렉터리에 액세스할 수 있는 경우 어떻게 해야 합니까? 애초에 내 "사용자 아키텍처"가 모두 잘못되었을 수도 있나요?

답변1

애초에 내 "사용자 아키텍처"가 모두 잘못되었을 수도 있나요?

네. 당신에게 그것을 깨뜨리는 것이 싫지만 이것이 전부입니다. 변경하는 방법은 다음과 같습니다.

  1. Apache를 자체 사용자로 실행하십시오(가능한 경우 chroot에서 실행). 이를 최소 권한 원칙이라고 합니다. 이는 무언가가 손상될 경우 발생할 수 있는 피해를 제한하는 것입니다. 뭔가를 가정~ 할 것이다타협하고 거기에서 일하십시오. Apache를 권한 있는 사용자로 실행해야 할 이유가 없습니다.
  2. Jenkins CI를 자체 사용자로 실행합니다. 동일한 원칙이 적용됩니다.
  3. 파일이 웹 서버 디렉토리에 도달할 수 있는 방법을 제공하십시오. 예를 들어 Jenkins 사용자를 Apache 그룹에 추가할 수 있습니다. 이렇게 하면 Jenkins 빌드 서버에 웹 서버 디렉터리에 대한 액세스 권한이 부여됩니다. 더 안전한 방법은 Apache 사용자로 cron 작업이나 시스템 타이머를 실행하고 이를 사용하여 파일을 복사하는 것입니다. 왜 이것이 더 안전합니까? Jenkins가 손상되면 공격자는 웹 서버 디렉터리에 액세스할 수 없습니다.

관련 정보