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