MacOS에는 Linux에 해당하는 운영 체제가 있습니까?공유 취소(2)?
두 시스템 모두에서 다음 작업이 실패하기를 원합니다.
#define _GNU_SOURCE
#include <stdlib.h>
#include <sched.h>
int main()
{
#if __linux__
if(0>unshare(CLONE_NEWNET)) return EXIT_FAILURE;
#elif __APPLE__
/*?*/
#endif
//this should fail on either system
if(0!=system("curl www.google.com")) return EXIT_FAILURE;
}
답변1
sandbox_init()
맥 OS 보다매뉴얼 페이지설명을 얻으려면.
귀하가 설명하는 것과 유사한 사용 사례를 지원하는 것으로 보이는 두 개의 내장 프로필이 있습니다. kSBXProfileNoInternet
여기서는 TCP/IP 네트워킹이 금지되고, kSBXProfileNoNetwork
여기서는 모든 소켓 기반 네트워킹이 금지됩니다. (후자가 여기에서 Linux 네트워크 네임스페이스의 기능에 더 가깝지만 전자가 사용자의 요구에 충분할 수 있습니다.)
이 기능은 다음과 같이 문서화되어 있습니다.더 이상 사용되지 않음, 애플리케이션을 샌드박스하려는 사람들은 살펴봐야 합니다.애플리케이션 샌드박스 기능, 그러니 여러분도 확인해 보시는 것이 좋을 것 같습니다. 애플리케이션 샌드박싱이 동일한 메커니즘(플랫폼에서 실행하는 코드)을 사용한다는 사실을 몰랐기 #ifdef
때문에 sandbox_init()
처음에 이를 제안했습니다.