특정 사용자에 대해 특정 시스템 호출을 비활성화하는 방법은 무엇입니까?

특정 사용자에 대해 특정 시스템 호출을 비활성화하는 방법은 무엇입니까?

나는 키보드와 같은 웹 애플리케이션을 만들고 있으며, 각 실행 작업에 대해 내 애플리케이션은 디렉토리( /home/radeks/voidptr/private/chroot-root)를 에 복사합니다 /tmp/voidptr/[random-id]/chroot-root. 이 chroot 디렉토리에는 웹 애플리케이션 사용자가 입력한 코드를 컴파일하고 실행하는 사용자가 있습니다. 문제는 사용자가 컴퓨터를 종료하거나 소켓 등을 사용하는 것을 원하지 않는다는 것입니다.

감독자를 작성해야 합니까? 아니면 각 사용자에 대해 이러한 권한을 간단히 설정할 수 있습니까?

답변1

Chroot는 파일 시스템 액세스만 제한합니다. 루트 권한이 있는 경우 chroot는 보안 제한이 아니라 불편합니다. 일반 사용자는 소켓을 사용할 수 있지만 시스템을 종료할 수는 없습니다.

기능, AppArmor, SELinux 등 사용자가 수행할 수 있는 작업을 제한하는 방법은 많지만 가장 쉬운 방법은 웹앱 사용자를 가상 머신으로 제한하는 것입니다. 네트워크 연결, 리소스 사용량 등을 쉽게 제한할 수 있습니다. 귀하의 사용 사례에는 경량 Linux-on-Linux 가상 머신 기술이 가장 좋은 것 같습니다.오픈VZ,사용자 모드 리눅스또는가상 서버.

관련 정보