Como administrador do sistema, você inevitavelmente realizará manutenções agendadas no 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 os 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 e um shell nologin no Linux. Veremos como definir uma mensagem que explique aos usuários o que está 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) para os usuários que tentam fazer login em um sistema durante o processo de desligamento.
Depois que a mensagem for exibida para o usuário, o procedimento de login é encerrado, impedindo o usuário de fazer 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 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.

Como Bloquear Logins de Usuário Usando o Shell nologin
Este método funciona um pouco diferente: ele apenas bloqueia um usuário de acessar um shell. Mas ele ou ela pode fazer login no sistema via programas como ftp que não necessariamente exigem um shell para que o usuário se conecte a um sistema.
Além disso, isso pode permitir que você bloqueie o acesso ao shell para usuários específicos em cenários especiais.
No RHEL/CentOS/Fedora
Basta usar o comando chsh (alterar 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ê tem que usar o arquivo /bin/false. O comando abaixo altera o shell do usuário tecmint para /bin/false
significando 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.
- Como Habilitar e Desabilitar o Login de Root no Ubuntu
- Redefinindo/Recuperando a Senha da Conta de Usuário Root Esquecida no RHEL/CentOS 7
- Como Restringir Usuários SFTP a Diretórios Domésticos Usando Chroot Jail
- Como Definir e Remover Variáveis de Ambiente Locais, de Usuário e de Sistema no Linux
Por enquanto é só! Se você tiver alguma dúvida ou ideia adicional para compartilhar sobre esse tópico, utilize o formulário de comentários abaixo.
Source:
https://www.tecmint.com/block-or-disable-normal-user-logins-in-linux/