AmbientCapability와 CapabilityBoundingSet의 차이점은 무엇입니까?

AmbientCapability와 CapabilityBoundingSet의 차이점은 무엇입니까?

포트 80 및 443에 바인딩해야 하는 웹 서버 프로세스에 대한 시스템 서비스를 만들려고 합니다. 몇 가지 샘플 설정 및 AmbientCapabilities=CAP_NET_BIND_SERVICE설정 예제를 찾았습니다 AmbientCapabilitiesCapabilityBoundingSet. 문서에 따르면 명확하지 않습니다. 시스템 문서:협회. 리눅스 매뉴얼:협회

둘 다 설정해야 합니까, 아니면 AmbientCapability만 설정해야 합니까?

답변1

그것들은 완전히 반대입니다:

AmbientCapabilities 승인하다이 프로세스는 일반적으로 기능을 시작하지 않습니다.

CapabilityBoundingSet 한계프로세스가 획득하도록 허용된 기능입니다. 어떤 능력도 부여하지 않습니다.

작업의 경우 AmbientCapability를 설정하여 권한을 부여하는 것으로 충분합니다. 경계 세트는 이미 기본적으로 모든 것을 허용하므로 변경할 필요가 없습니다.

대신 후자는 보안 강화 기능으로 사용됩니다. 서비스가 실제로 루트(uid 0)로 실행되거나 "su" 또는 "sudo"와 같은 setuid-root 프로그램을 호출하더라도 경계 세트에 없는 권한을 얻을 수 없습니다.

그러나 서비스에서 높은 권한이 필요한 항목을 직접 실행하지 않을 것이라고 확신하는 경우 두 가지를 모두 설정할 수 있습니다(아마도 설정해야 함).

관련 정보