Como Bloquear ou Desativar Logins de Usuários Normais no Linux

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.

Block User Login in Linux

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.

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