chroot
저는 MacOS에서 실행 파일을 빌드할 때 사용하는 파일과 라이브러리를 더 효과적으로 제어할 수 있는 방법을 원합니다 . 이상적으로는 그것 chroot
으로 충분할 수 있지만(MacOS에서도 사용 가능), 첫째로 실행할 때 사용자가 루트여야 한다고 생각했고, 둘째로 그것이 제공하는 기능을 살펴보았는데 제 목적보다 더 흥미로워 fakechroot
보였습니다 ( chroot
단, fakechroot
MacOS로의 포팅은 없습니다.)
특히 , 와 같은 기능을 fakechroot
대체하기 때문에 제가 따르고 싶은 방식으로 보이고 open()
, 대체함으로써 open()
실행 파일을 위해 생성하는 "가상 환경"에 대해 상당한 수준의 제어권을 가질 수 있습니다. 예를 들어 chroot
내 패치는 open()
트리에서 필요한 시스템 라이브러리를 복사하는 대신 실행 파일이 사용하기를 원하는 라이브러리에만 액세스를 제공할 수 있습니다.
MacOS에서도 유사한 기능을 이미 사용할 수 있나요? 아니면 제가 직접 작성해야 하나요?
답변1
애플리케이션 샌드박스아마도 커널에서 실행되고 Apple에서 지원하기 때문에 타사 코드를 포팅하는 것보다 더 적절할 것입니다.
각 응용 프로그램의 중요한 리소스에 대한 액세스를 제한함으로써 응용 프로그램 샌드박스는 공격자가 응용 프로그램의 보안 취약성을 성공적으로 악용하는 경우 사용자 데이터가 도난, 손상 또는 삭제되거나 시스템 하드웨어가 하이재킹되는 것에 대한 최후의 방어선을 제공할 수 있습니다. 예를 들어, 샌드박스 애플리케이션은 자격을 사용하여 다음 리소스 중 하나를 사용하려는 의도를 명시적으로 선언해야 합니다.
...
반면, 샌드박스 애플리케이션은 요청한 특정 리소스에 액세스할 수 있고, 사용자가 일반적인 방법(예: 드래그 앤 드롭)으로 일반적인 작업을 수행하여 샌드박스를 확장할 수 있도록 하며, 안전하다고 간주되는 많은 추가 작업을 자동화할 수 있습니다. .