Saya membuat alat yang akan menjalankan program yang diunggah oleh siswa saya dan menguji pekerjaan rumah mereka dari kelas pemrograman.
Program mereka membaca dari input standar, melakukan beberapa perhitungan dan kemudian menulis ke output standar. Tidak ada lagi. Setiap program terdiri dari satu file yang dapat dieksekusi.
Bagaimana saya mencegah program mereka melakukan sesuatu yang tidak menyenangkan pada sistem saya?
Saya ingin menggunakan linux.
EDIT: Saya tidak percaya bahwa siswa saya lebih baik dari server saya sendiri. Mungkin ada file dengan izin 777 di server saya yang saya tidak ingin siswa baca. Saya percaya bahwa saya bisa menggunakan perintah chroot untuk mencegah akses ke file. Tetapi bagaimana saya bisa mencegah akses misalnya ke jaringan dan internet?
Jawaban:
Anda memiliki beberapa pilihan, ini benar-benar keseimbangan waktu / usaha vs seberapa besar Anda tidak mempercayai siswa Anda.
Cara teraman adalah menjalankan mesin virtual linux, tetapi mungkin tidak perlu jika tujuan mesin hanyalah testbed.
Dengan izin yang tepat pada sisa file Anda, Anda bisa menjadikan "Mahasiswa" pengguna dan memberi mereka satu direktori yang mereka memiliki izin. Mereka tidak akan memiliki izin untuk mengedit file sistem apa pun dan alat yang berpotensi merusak seperti gparted akan membutuhkan sudo (Jangan sertakan dalam sudoers).
sumber