Pesquisa de site

Como bloquear ou desativar logins normais de usuários no Linux


Como administrador de sistema, você inevitavelmente realizará manutenções programadas do sistema em algum momento ou outro. Algumas vezes, seu sistema também pode encontrar alguns problemas e você será forçado a desligá-lo para corrigi-los. Quaisquer que sejam as situações, é uma boa ideia evitar que usuários não-root (normais) se conectem ao sistema.

Leia também: Desative ou ative o login raiz SSH e limite o acesso SSH no Linux

Neste artigo, descreveremos como bloquear logins de usuários não root usando o arquivo /etc/nologin, bem como um shell nologin no Linux. Veremos como definir uma mensagem que explique aos usuários o que realmente está acontecendo.

Como bloquear logins de usuários usando o arquivo /etc/nologin

A principal função do arquivo /etc/nologin é exibir uma mensagem (armazenada no arquivo) para usuários que tentam fazer logon em um sistema durante o processo de desligamento.

Assim que a mensagem for exibida ao usuário, o procedimento de login é encerrado, impedindo o usuário de efetuar login no sistema.

Isso pode ser usado para bloquear o login do usuário criando manualmente o arquivo da seguinte maneira.

vi /etc/nologin

Adicione a mensagem abaixo ao arquivo, que será mostrada aos usuários que tentarem efetuar login no sistema.

The Server is down for a routine maintenance. We apologize for any inconvenience caused, the system will be up and running in 1 hours time. For more information, contact the system admin [email . 

Agora você pode testar se tudo funciona; como você pode ver na captura de tela abaixo, um usuário normal tecmint não consegue fazer login.

Como bloquear logins de usuários usando nologin Shell

Este método funciona de maneira um pouco diferente: ele apenas bloqueia o acesso de um usuário a um shell. Mas ele ou ela pode fazer logon no sistema através de programas como ftp que não exigem necessariamente um shell para o usuário se conectar a um sistema.

Além disso, pode permitir bloquear o acesso do shell a usuários específicos em cenários especiais.

No RHEL/CentOS/Fedora

Basta usar o comando chsh (change shell) para alterar o shell do usuário no arquivo /etc/passwd de algo como /bin/bash ou /bin/sh para /sbin/nologin significando recusar um login.

chsh -s /bin/nologin tecmint

No Debian/Ubuntu

Aqui, você deve usar o arquivo /bin/false. O comando abaixo altera o shell do usuário tecmint para /bin/false, o que significa não fazer nada (após o usuário fornecer credenciais de login):

sudo chsh -s /bin/false tecmint

Você também pode gostar de ler os seguintes artigos relacionados.

  1. Como ativar e desativar o login root no Ubuntu
  2. Redefinindo/recuperando a senha esquecida da conta de usuário root no RHEL/CentOS 7
  3. Como restringir usuários SFTP a diretórios iniciais usando chroot Jail
  4. Como definir e remover variáveis de ambiente locais, de usuário e de sistema no Linux

É tudo por agora! Se você tiver alguma dúvida ou ideia adicional para compartilhar sobre este tópico, use o formulário de comentários abaixo.