Boa maneira de evitar que o aluno altere as configurações do programa em / home / user

1

Eu sou professor e uso Linux, o que é ótimo! Mas os alunos estão curiosos sobre esse "novo" sistema operacional que eles não conhecem e na GUI eles ajustam as configurações do programa que afetam arquivos ocultos dentro de /home/user :

[profesor@240-kateder ~]$ ls -a
.              .dbeaver4         .gtkrc-2.0        .sane
..             .dbeaver-drivers  .icons            .swt
.bash_history  .dropbox          .kde4             .themes
.bash_logout   .eclipse          .local            .thumbnails
.bash_profile  .esd_auth         .lyx              .ViberPC
.bashrc        .FlatCAM          .masterpdfeditor  .w3m
.cache         .FreeCAD          .mozilla          .Xauthority
.config        .gimp-2.8         .pki              .xinitrc
.convertall    .gnupg            .qucs             .xournal

Isto é indesejado porque ao longo do tempo as interfaces do programa mudam tão drasticamente que os programas não terão barras de ferramentas, botões, menus principais, menus de status ... e os alunos acabam com GUIs completamente diferentes, então eles estão me ligando nós gastamos muito tempo.

Agora, para otimizar isso, tenho que ter certeza de que as configurações do programa (arquivos ocultos dentro de /home/user ) não foram alteradas, então tentei alterá-las como sudo chmod -R 555 ~/.* , mas isso não funcionou bem para todos programas, porque alguns dos programas querem manipular suas configurações na inicialização e, portanto, não conseguem iniciar com sudo . E os alunos não têm sudo privilégios.

Mas sudo chmod -R 555 ~/.* funcionou para .bash_profile , .bash_logout , .bashrc , .bash_history , .xinitrc , por isso estava pensando se eu:

  1. impede que o usuário exclua .bash_profile , .bash_logout , .bashrc , .bash_history , .xinitrc
  2. copie todos os arquivos de configuração ocultos para uma pasta /opt/restore_settings
  3. programa .bash_profile para limpar todas as configurações no diretório inicial dos usuários no login usando rm -r ~/.* (suponho que isso não excluiria arquivos do ponto 1., se eu protegê-los) e depois restauraria as configurações do /opt/restore_settings .

Eu não quero saber sua opinião sobre essa ideia, ou se existe uma maneira melhor de fazê-lo. E preciso de uma maneira de evitar que os usuários excluam arquivos do ponto 1. Caso contrário, isso não funcionará.

    
por 71GA 03.09.2017 / 11:49

2 respostas

5

Abordagem totalmente diferente: crie um grupo students , atribua a cada aluno sua própria conta com a participação no grupo em students . Ter um script que restaure um determinado diretório base de um modelo para um estado válido conhecido, possivelmente excluindo todos os arquivos de pontos extras. Diga aos alunos sobre esse script.

Se você tiver vários computadores, centralize essa abordagem (gerenciamento de usuários em um único servidor central) e use um servidor de arquivos central para os diretórios iniciais dos alunos, para que cada aluno receba o mesmo diretório em qualquer máquina.

Juntamente com as permissões apropriadas (basic chmod ) em todos os lugares, isso garantirá que cada aluno possa causar estragos apenas em sua própria casa, e possa restaurá-lo quando ele quebrar, possivelmente perdendo suas próprias personalizações nesse processo. então eles serão mais cautelosos da próxima vez.

BTW, essa é uma configuração muito padrão para muitos usuários em um cluster de máquinas.

    
por 03.09.2017 / 14:31
4

A configuração dos atributos Immutable e Undeletable nos arquivos de ponto via chattr deve ajudar. Veja man chattr ou a entrada da wikipedia para chattr

Não impede a alteração ou a exclusão total, pois o usuário pode executar chattr , mas fica definitivamente mais obscuro.

    
por 03.09.2017 / 11:59