Como Bloquear ou Desativar Logins de Usuário Normal no Linux

Como administrador de sistema, você inevitavelmente realizará manutenções programadas do sistema em algum momento. Algumas vezes, seu sistema também pode encontrar algum(s) problema(s) e você será forçado a desligá-lo para corrigir o(s) problema(s). Seja qual for a situação, é uma boa ideia impedir que usuários não-root (normais) se conectem ao sistema.

Leia também: Desativar ou Ativar o Login de Root via SSH e Limitar o Acesso SSH no Linux

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

Como Bloquear Logins de Usuários Usando o Arquivo /etc/nologin

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

Uma vez que a mensagem tenha sido exibida ao usuário, o procedimento de login é encerrado, impedindo que o usuário faça login no sistema.

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

# vi /etc/nologin

Adicione a mensagem abaixo ao arquivo, que será exibida aos usuários que tentarem fazer 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 protected]. 

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.

Block User Login in Linux

Como Bloquear Logins de Usuário Usando o Shell nologin

Este método funciona um pouco diferente: ele apenas impede que um usuário acesse um shell. Mas ele ou ela ainda pode fazer login no sistema via programas como ftp que não necessariamente requerem um shell para o usuário se conectar ao sistema.

Além disso, isso pode permitir que você bloqueie o acesso ao shell de usuários específicos em cenários especiais.

No RHEL/CentOS/Fedora

Basta usar o comando chsh (change shell) para alterar o shell dos usuários 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 que significa não fazer nada (depois que o usuário fornecer credenciais de login):

$ sudo chsh -s /bin/false tecmint

Você também pode se interessar por estes artigos relacionados a seguir.

  1. Como Habilitar e Desabilitar o Login de Root no Ubuntu
  2. Redefinindo/Recuperando a Senha da Conta de Usuário Root Esquecida no RHEL/CentOS 7
  3. Como Restringir Usuários SFTP a Diretórios Domésticos Usando Chroot Jail
  4. Como Definir e Desativar Variáveis de Ambiente Locais, de Usuário e de Sistema no Linux

Por enquanto é só! Se tiver alguma dúvida ou ideia adicional para compartilhar sobre este tópico, utilize o formulário de comentários abaixo.

Source:
https://www.tecmint.com/block-or-disable-normal-user-logins-in-linux/