impede a modificação do arquivo e / ou registro de data e hora do arquivo

1

Como parte da minha classe OS, estou expondo os alunos ao Linux e a alguns códigos. Os alunos estão enviando seu programa em um diretório e nome especificados em sua própria conta (por exemplo, ~/Prog1/Prog1.java ). Eles podem enviar programas com até dois dias de atraso.

Eu quero evitar que eles modifiquem seus programas após o "envio". Meu primeiro pensamento é desativar ou ocultar o comando touch para que eles não possam falsificar o registro de data e hora do arquivo quando eu verificar com ls -l , mas isso é suficiente? Existem outras maneiras relativamente simples para eles se infiltrarem em uma modificação em sua fonte sem que eu seja capaz de detectá-la? Eles são novos no Linux - por isso não muito bem informados.

Ou existe uma maneira de criar um diretório somente para gravação para que eles possam copiar seus programas para ele, mas não modificar o registro de data e hora? Existe uma maneira mais fácil que eu não estou considerando?

Este é o sabor RedHat 7.5 do Linux.

Eu pensei em postar no link ou link e eu ficaria feliz em fazer a minha pergunta se isso for mais apropriado, embora me chame fundamentalmente de uma questão no Linux.

Analisar o tempo de alteração / modificação que o stat me dá é uma maneira infalível de garantir que os arquivos não tenham sido alterados após o envio?

    
por Levon 29.09.2017 / 03:30

2 respostas

0

Você pode facilmente assumir a propriedade da pasta especificada e, ao mesmo tempo, permitir que eles verifiquem o trabalho.

Para apropriar-se da pasta: chown teacher /path/to/file.java

E para não permitir alterações por conta de não-proprietário: chmod go-w /path/to/file.java

Agora, para automatizar isso, use o comando at para executar um trabalho de código, por exemplo:

at 10am Jul 31 , então você estará presente com uma nova linha de comando at> . A partir daí, basta inserir os comandos anteriores chmod & chown e eles serão executados a partir daí.

Apenas uma nota, execute o comando at com o super usuário root .

    
por 29.09.2017 / 03:56
0

Você pode estar procurando o comando chattr que pode tornar um arquivo imutável. De homem chattr :

A file with the 'i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

  • para definir o atributo imutável:

    chattr +i ~/Prog1/Prog1.java
    
  • para remover o atributo imutável:

    chattr -i ~/Prog1/Prog1.java
    
  • para ver os atributos atuais, você pode usar lsattr (observe que seus alunos também podem usar esse comando para ver se o atributo imutável está definido):

    lsattr ~/Prog1/Prog1.java
    

Você também precisará adicionar um trabalho cron para monitorar as pastas de envio de novos arquivos durante o intervalo de tempo de envio de dois dias.

    
por 29.09.2017 / 16:20