Posso limitar o acesso de um processo a arquivos especificados e stdout apenas sem root?

Posso limitar o acesso de um processo a arquivos especificados e stdout apenas sem root?

Quero configurar um servidor para os alunos fazerem upload do código C. O servidor compila o código C, executa o binário e mostra a saída aos alunos.

Agora estou preocupado com a segurança. Os alunos podem fazer upload de qualquer código, mas quero que eles possam acessar 2 arquivos especificados (1 para leitura e 1 para gravação fopen) e apenas stdout. Não quero que eles acessem a Internet ou quaisquer outros arquivos do sistema.

O servidor que tenho é Linux em contêiner e não tenho root.

Eu pensei sobre estas soluções:

  1. chrootou firejail. (Não tenho raiz do servidor. É conteinerizado, definir euid não é permitido)

  2. use algumas gccopções, ou .harquivos ou limite da biblioteca C. (Tenho pouco conhecimento sobre compilação. Teoricamente, as pessoas podem fazer qualquer coisa com C sem usar nenhum arquivo de cabeçalho ou biblioteca)

  3. use algo como straceou ptracepara monitorar o processo e encerrá-lo se quiser fazer o que eu não quero.

É possível fazer isso?

informação relacionada