Como prender um processo?

1

Estou criando uma ferramenta que executará os programas enviados por meus alunos e testará seus trabalhos de casa na aula de programação.

Seus programas são lidos a partir da entrada padrão, fazem alguns cálculos e depois gravam na saída padrão. Nada mais. Cada programa consiste em um arquivo executável.

Como faço para impedir que seus programas façam algo desagradável no meu sistema?

Eu gostaria de usar o linux.

EDIT: Eu não confio neighter meus alunos neighter meu próprio servidor. Pode haver arquivos com 777 permissões no meu servidor que eu não quero que os alunos leiam. Eu acredito que eu poderia usar o comando chroot para impedir o acesso aos arquivos. Mas como posso impedir o acesso, por exemplo, à rede e à internet?

    
por ki13 31.10.2015 / 11:38

1 resposta

1

Você tem várias opções, é realmente um equilíbrio de tempo / esforço versus o quanto você desconfia de seus alunos.

A maneira mais segura seria rodar uma máquina Linux virtual, mas é provavelmente desnecessária se a única finalidade da máquina for testar.

Com as permissões corretas para o restante de seus arquivos, você pode simplesmente criar um "Aluno" e dar a ele um único diretório para o qual ele tenha permissão. Eles não terão permissão para editar nenhum arquivo do sistema e quaisquer ferramentas potencialmente destrutivas como o gparted exigirão o sudo (não incluí-lo em sudoers).

    
por 31.10.2015 / 11:52