!["Bloquear" um arquivo específico para que eu e o root não tenhamos mais acesso a ele](https://rvso.com/image/1035912/%22Bloquear%22%20um%20arquivo%20espec%C3%ADfico%20para%20que%20eu%20e%20o%20root%20n%C3%A3o%20tenhamos%20mais%20acesso%20a%20ele.png)
Para combater a procrastinação, edito meu /etc/hosts
arquivo adicionando sites que desperdiçam tempo e apontando-os para localhost
. No entanto, a carne é fraca e muitas vezes me vejo revertendo minhas mudanças.
Estava pensando na seguinte solução, mas não sei se é tecnicamente possível.
Eu pediria a um amigo de confiança que viesse, criasse uma nova conta com uma senha forte que não conheço, alterasse o proprietário e as permissões do /etc/hosts
arquivo para que somente esse novo usuário pudesse alterar esse arquivo e que eunem raiznão tem mais acesso a ele.
O caso de uso seria que eu pedisse ao meu amigo para vir antes do período de provas, ele alterasse o arquivo e implementasse as medidas de bloqueio de procrastinação, e que durante o tempo que preciso estudar eu não tivesse como editar o arquivo sozinho. Terminado o período de exames, peço para ele ‘desbloquear’ o arquivo e posso navegar livremente novamente.
Responder1
Você pode bloquear um arquivo para que nem mesmo 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
Responder2
Em última análise, se o acesso root estiver disponível, não existe uma maneira infalível de impedir que um usuário inteligente faça o que deseja. Não creio que exista uma maneira de fazer isso, a não ser abrir mão do acesso root.
Responder3
Você pode configurar outra conta de usuário que seja um usuário regular de desktop que não possa usar o sudo. Em seguida, peça ao seu amigo que faça login como você na sua conta existente, edite o arquivo /etc/hosts, redefina sua senha sem informar qual é e efetue logout.
Então você terá que usar a nova conta, que não tem direitos para editar /etc/hosts.
Você ainda precisará exercitar a força de vontade para impedir a inicialização a partir de um CD/USB ativo.
Responder4
Como alternativa, ao mesmo tempo em que cria seu /etc/hosts
arquivo, você também pode editá- /etc/sudoers
lo ou simplesmente remover seu usuário do admin
grupo. Mudar de grupo é provavelmente mais fácil.
Você provavelmente deve criar uma proteção para poder voltar ao grupo. Sugiro adicionar algo /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, você pode inicializar no modo de recuperação (no grub) e usar o console root para adicionar manualmente seu usuário de volta ao admin
grupo.