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.

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.
- 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 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/