나는 키보드와 같은 웹 애플리케이션을 만들고 있으며, 각 실행 작업에 대해 내 애플리케이션은 디렉토리( /home/radeks/voidptr/private/chroot-root
)를 에 복사합니다 /tmp/voidptr/[random-id]/chroot-root
. 이 chroot 디렉토리에는 웹 애플리케이션 사용자가 입력한 코드를 컴파일하고 실행하는 사용자가 있습니다. 문제는 사용자가 컴퓨터를 종료하거나 소켓 등을 사용하는 것을 원하지 않는다는 것입니다.
감독자를 작성해야 합니까? 아니면 각 사용자에 대해 이러한 권한을 간단히 설정할 수 있습니까?
답변1
Chroot는 파일 시스템 액세스만 제한합니다. 루트 권한이 있는 경우 chroot는 보안 제한이 아니라 불편합니다. 일반 사용자는 소켓을 사용할 수 있지만 시스템을 종료할 수는 없습니다.
기능, AppArmor, SELinux 등 사용자가 수행할 수 있는 작업을 제한하는 방법은 많지만 가장 쉬운 방법은 웹앱 사용자를 가상 머신으로 제한하는 것입니다. 네트워크 연결, 리소스 사용량 등을 쉽게 제한할 수 있습니다. 귀하의 사용 사례에는 경량 Linux-on-Linux 가상 머신 기술이 가장 좋은 것 같습니다.오픈VZ,사용자 모드 리눅스또는가상 서버.