다음 사용자 "스키마"가 있습니다.
- 루트 액세스가 비활성화되었습니다.
- 관리자 사용자는 자신의 홈 디렉터리에만 액세스할 수 있습니다.
- Apache는 루트 서비스로 실행됩니다(루트는 웹 서버 파일에 액세스할 수 있는 유일한 서비스입니다).
- Jenkins CI를 설치했으며 "관리자" 권한으로 프로젝트를 구축하고 있습니다.
빌드 후 작업으로 최신 빌드 파일을 내 웹서버 위치에 복사하고 싶습니다. "루트" 사용자만 내 대상 디렉터리에 액세스할 수 있는 경우 어떻게 이를 달성할 수 있습니까? 어쩌면 내 "사용자 스키마"가 처음부터 잘못되었을 수도 있습니까?
답변1
어쩌면 내 "사용자 스키마"가 처음부터 잘못되었을 수도 있습니까?
예. 당신에게 그것을 깨뜨리는 것을 싫어하지만 그게 전부입니다. 어떻게 바꿔야 할까요:
- 가급적이면 chroot에서 자신의 사용자로 Apache를 실행하세요. 이를 최소 권한의 원칙이라고 합니다. 이는 무언가가 손상될 경우 발생할 수 있는 피해를 제한하는 것입니다. 뭔가를 가정하다~ 할 것이다거기에서 타협하고 일하십시오. 권한 있는 사용자로 Apache를 실행할 이유가 없습니다.
- Jenkins CI를 자신의 사용자로 실행하세요. 동일한 원칙이 적용됩니다.
- 파일이 웹 서버 디렉토리에 도달하는 방법을 제공합니다. 예를 들어 Jenkins 사용자를 Apache 그룹에 추가할 수 있습니다. 이렇게 하면 Jenkins 빌드 서버에 웹 서버 디렉터리에 대한 액세스 권한이 부여됩니다. 더 안전한 접근 방식은 Apache 사용자로 cron 작업이나 systemd 타이머를 실행하고 이를 사용하여 파일을 복사하는 것입니다. 왜 이것이 더 안전합니까? Jenkins가 손상되면 공격자는 웹 서버 디렉터리에 액세스할 수 없습니다.