Muito disso depende da sua definição de "login" - tecnicamente, qualquer usuário que exista em /etc/passwd
& /etc/shadow
é um "usuário válido" e poderia, teoricamente, fazer login sob o conjunto correto de circunstâncias.
Os métodos dos quais você está falando se enquadram nas seguintes categorias gerais:
-
Usuários com contas "bloqueadas"
Um usuário cuja senha está definida como*
,!
ou algum outro hash que nunca corresponderá é "bloqueado" (nos dias da Sun, a convenção costumava ser*LK*
, para "Bloqueado"). Esses usuários não podem efetuar login digitando uma senha , mas eles podem ainda fazer o log usando outros mecanismos de autenticação (chaves SSH, por exemplo). -
Usuários com um shell "não interativo"
Um usuário cuja conta tenha um "shell não interativo" (/bin/false
,/sbin/nologin
) não pode efetuar login interativamente - isto é, eles não podem obter um prompt do shell para executar comandos em ( isso também impede a execução do comando SSH se o usuário tiver chaves SSH no sistema). Esses usuários ainda podem fazer login para fazer coisas como ler / enviar e-mail (via POP / IMAP e SMTP AUTH). Definir um shell não interativo para usuários que nunca devem precisar usar o shell (e para a maioria das "contas de serviço") é geralmente considerado uma boa prática.
Portanto, dependendo dos seus critérios para "poder fazer login", você pode querer verificar uma ou ambas as coisas.