나는 무엇을 하고 싶은가?
나는 chroot와 Python을 사용하여 코드 평가기를 작성 중이며 영감을 얻기 위해 hackerrank에갔습니다.
Hackerrank에서는 무슨 일이 벌어지고 있는 것 같나요?
Hackerrank는 사용자 프로그램이 제출한 각 실행에 대해 run-XXXXXXXXXXXXXXXXXXXXX 폴더를 생성합니다. 각 폴더에는 고유한 소유자가 있으며 해당 소유자만 해당 폴더에 대한 읽기/쓰기 액세스 권한을 갖습니다. 이는 특정 사용자가 15307
다른 폴더의 내용을 읽거나 수정할 수 없음을 의미합니다.
문제에 대해 말하면
누군가 chroot와 Python 또는 다른 언어를 사용하여 이를 어떻게 달성할 수 있습니까? 매번 사용자를 생성해야 합니까?
산출ls -al
total 140
drwxrwx--x 2 15307 15307 4096 Jun 24 19:17 .
drwxr-xr-x 68 root 0 118784 Jun 24 19:17 ..
-rw-r--r-- 1 15307 15307 0 Jun 24 19:17 compile.err
-rw-rw---- 1 15307 15307 0 Jun 24 19:17 error00000.err
-rw-r----- 1 15307 15307 27 Jun 24 19:17 input00000.in
-rw-rw---- 1 15307 15307 0 Jun 24 19:17 output00000.out
-rwxrwx--- 1 root 0 783 Jun 24 19:17 request.json
-rw-rw---- 1 15307 15307 52 Jun 24 19:17 solution.py
-rw-r--r-- 1 15307 15307 213 Jun 24 19:17 solution.pyc
산출ls -al /
total 504
drwxr-xr-x 68 root 0 118784 Jun 24 19:17 .
drwxr-xr-x 68 root 0 118784 Jun 24 19:17 ..
drwxr-xr-x 3 ubuntu 0 4096 Jan 25 11:41 android
drwxr-xr-x 2 root 0 4096 Apr 9 06:30 bin
drwxrwx--x 2 17450 17450 4096 Jun 24 19:08 custom-H8tFpKOEWGsc0s6lvpRk
drwxrwx--x 2 14667 14667 4096 Jun 24 19:15 custom-QiOC2dqgU3pVUlFU4ZWz
drwxr-xr-x 13 root 0 3860 Jun 24 19:08 dev
drwxr-xr-x 10 root 0 4096 May 6 05:37 etc
drwxrwx--x 2 18227 18227 4096 Jun 24 19:13 game-player1-YeDYLpA2uIqJFeZ3d97T9IuRAKoqDhyM
drwxr-xr-x 4 root 0 4096 May 6 05:37 home
drwxr-xr-x 21 root 0 4096 Jun 21 06:36 lib
drwxr-xr-x 2 root 0 4096 Jun 21 06:36 lib32
drwxr-xr-x 2 root 0 4096 Jun 21 06:36 lib64
drwx------ 2 root 0 16384 Jan 25 09:18 lost+found
drwxr-xr-x 5 root 0 4096 Jan 25 14:10 opt
dr-xr-xr-x 127 root 0 0 Jun 24 19:08 proc
drwxr-xr-x 7 root 0 4096 Jun 21 10:30 root
drwxr-xr-x 22 root 0 800 Jun 24 19:08 run
drwxrwx--x 2 15307 15307 4096 Jun 24 19:17 run-1KpGsxE8tJkf4JZhNa3O
drwxrwx--x 2 19186 19186 4096 Jun 24 19:12 run-1a89kLrOIvxSKmcG8Vxf
drwxr-x--- 2 root 0 4096 Jun 24 19:13 run-1tPF28PnLjSHnwiPQQKw
drwxrwx--x 2 18229 18229 4096 Jun 24 19:12 run-1z3LUuz9SddZHYtT6DXl
drwxrwx--x 2 17407 17407 4096 Jun 24 19:14 run-2KfLhB5KQJ9hFnT32apd
drwxrwx--x 2 13423 13423 4096 Jun 24 19:15 run-2kNHf7UsoOBjeQI2Tcbk
drwxrwx--x 2 13477 13477 4096 Jun 24 19:12 run-6fuBJP7ZgZfEm2k9vkZV
drwxrwx--x 2 14824 14824 4096 Jun 24 19:08 run-8MlwJE1ia8bR86MbVYi8
drwxrwx--x 2 15984 15984 4096 Jun 24 19:13 run-A3YDoqR2J9cGAhILYDqZ
drwxrwx--x 2 16989 16989 4096 Jun 24 19:16 run-AQQjyqXYSXeFZ9wzI5dy
drwxrwx--x 2 18819 18819 4096 Jun 24 19:15 run-AvAUgIkcFtieewAFZ6dZ
drwxrwx--x 2 13189 13189 4096 Jun 24 19:14 run-FldwZMBI51tvTI3bzTqf
drwxrwx--x 2 15862 15862 4096 Jun 24 19:08 run-GORpHssv6tp0WFktcKlE
drwxrwx--x 3 15041 15041 4096 Jun 24 19:14 run-GmRpaAqK23cjuC3opP6G
drwxrwx--x 2 12977 12977 4096 Jun 24 19:12 run-zlriB5scmjE0ASSjie2r
drwxr-xr-x 2 root 0 4096 Jun 21 06:37 sbin
drwx------ 3 root 0 4096 Jun 24 19:08 store
drwxrwxrwt 4 root 0 4096 Jun 24 19:17 tmp
drwxr-xr-x 14 root 0 4096 Jan 25 11:36 usr
drwxr-xr-x 6 root 0 4096 May 2 16:53 var
답변1
다음을 통해 별도의 환경에서 애플리케이션을 실행할 수 있습니다.https://linuxcontainers.org/. 각 애플리케이션 인스턴스는 별도의 파일 시스템, 사용자, 네트워크 등을 가질 수 있습니다.