“Bloqueie” um arquivo específico para que eu nem o root não tenha mais acesso a ele

6

Para combater a procrastinação, edito meu arquivo /etc/hosts adicionando sites que desperdiçam tempo e os direciono para localhost . No entanto, a carne é fraca e muitas vezes me vejo revertendo minhas mudanças.

Eu estava pensando na solução a seguir, mas não sei se é tecnicamente possível.

Gostaria de pedir a um amigo de confiança para vir, criar uma nova conta com uma senha strong que eu não saiba, alterar o proprietário e as permissões do arquivo /etc/hosts para que apenas esse novo usuário possa alterar esse arquivo e que eu nem o root não tenham mais acesso a ele.

O caso de uso seria que eu pedisse ao meu amigo para vir antes do período do exame, ele mudaria o arquivo e colocaria as medidas de bloqueio de procrastinação no lugar, e que durante o tempo que eu preciso estudar eu não tenho como editar o arquivo eu mesmo. Depois que o período do exame terminar, peço para ele 'desbloquear' o arquivo e eu posso navegar livremente novamente.

    
por BioGeek 11.08.2011 / 23:53

4 respostas

6

Você pode bloquear um arquivo para que nem o usuário root possa editá-lo.

sudo chattr +i /etc/hosts

Pare de ler esta resposta até depois dos exames:)

Então você desbloqueia o arquivo novamente usando

sudo chattr -i /etc/hosts
    
por Richard Holloway 12.08.2011 / 00:06
3

Por fim, se o acesso à raiz estiver disponível, não há uma maneira infalível de impedir que um usuário inteligente faça o que deseja. Eu não acho que haja uma maneira de fazer isso, além de abandonar o acesso root.

    
por zpletan 12.08.2011 / 00:52
3

Você pode configurar outra conta de usuário que seja um usuário comum de desktop que não possa usar o sudo. Em seguida, peça ao seu cônjuge para entrar e fazer o login como você em sua conta existente, edite o arquivo / etc / hosts, redefina sua senha sem informar o que é e saia.

Então você tem que usar a nova conta, que não tem o direito de editar / etc / hosts.

Você ainda precisará exercitar a força de vontade para impedi-lo de inicializar a partir de um CD / USB ativo.

    
por Richard Holloway 12.08.2011 / 09:24
1

Como alternativa, ao mesmo tempo em que você cria seu arquivo /etc/hosts , você também pode editar o arquivo /etc/sudoers ou apenas remover seu usuário do grupo admin . Mudar de grupo é provavelmente mais fácil.

Provavelmente, você deve criar uma proteção para que possa se adicionar de volta ao grupo. Sugiro adicionar algo em /etc/rc.local ou algo em um script de ativação (mais rápido do que fazer uma reinicialização completa).

Se o pior acontecer e você estiver bloqueado, poderá inicializar no modo de recuperação (no grub) e usar o console raiz para adicionar manualmente o usuário de volta ao grupo admin .

    
por Oli 12.08.2011 / 00:05