Hoje, infelizmente, tive que desativar algumas contas de utilizadores num servidor linux de uma ONG. Nada mais fácil, graças ao comando passwd.

A primeira opção que me ocorreu foi editar o ficheiro /etc/shadow, onde são guardadas as credenciais de cada utilizador, e comentar a respetiva linha. No entanto, este não é o método mais seguro: um simples erro ou distração pode provocar a invalidação do ficheiro e, como consequência, o sistema pode ficar inacessível com todos os utilizadores bloqueados!

Uma rápida pesquisa resultou numa solução mais fácil e segura: o velho comando passwd permite bloquear e desbloquear contas com as opções -l (lock ) e -u (unlock ).

O modo como funciona também e bastante simples: o bloqueio é realizado acrescentando um ! no inicio da password encriptada no ficheiro /etc/shadow. O desbloqueio é conseguido removendo o !.

Portanto, para bloquear o acesso de um utilizador a um sistema linux, basta executar, como root, o seguinte comando:

root@server:~# passwd -l <utilizador>
passwd: password expiry information changed.

Quando o utilizador tentar aceder ao sistema, verá apenas a seguinte mensagem:

Access denied

Para ativar novamente o login do utilizador, basta:

root@server:~# passwd -u <utilizador>
passwd: password expiry information changed.

Simples e elegante, como o próprio Linux :-)