Como você sabe se um usuário tem "permissão para efetuar login" no Linux?


12

A pergunta é simples: desejo listar todas as contas de usuário que podem efetuar login no meu sistema, mas não tenho certeza se todos os usuários em / etc / passwd são "poderiam fazer login"?

Detalhes:

Posso ver usuários cujas conchas estão definidas /usr/sbin/nologincomo /bin/falseativas /etc/passwd, isso significa que não podem fazer login?

Eu também sei que eu posso definir a senha criptografada do usuário *ou !em /etc/shadowdesativar uma conta, de modo que o "usuário desativado" também deve ser tratar como "não consigo entrar no" user, certo?

Respostas:


13

Muito disso depende da sua definição de "logon" - tecnicamente qualquer usuário que exista no /etc/passwd& /etc/shadowé um "usuário válido" e, teoricamente, poderia efetuar logon nas circunstâncias certas.

Os métodos que você está falando se enquadram nas seguintes categorias amplas:

  • Usuários com contas "bloqueadas"
    Um usuário cuja senha está definida como *, !ou algum outro hash que nunca corresponderá é "bloqueado" (nos dias de sol em que a convenção costumava ser *LK*para "Bloqueado").
    Esses usuários não podem fazer login digitando uma senha , mas ainda podem fazer login usando outros mecanismos de autenticação (chaves SSH, por exemplo).

  • Usuários com um shell "não interativo"
    Um usuário cuja conta possui um "shell não interativo" ( /bin/false, /sbin/nologin) não pode fazer login de maneira interativa - ou seja, eles não podem obter um prompt de shell para executar comandos (isso também impede o SSH execução de comando se o usuário tiver chaves SSH no sistema).
    Esses usuários ainda podem fazer login para fazer coisas como ler / enviar email (via POP / IMAP e SMTP AUTH). Definir um shell não interativo para usuários que nunca precisam usar o shell (e para a maioria das "contas de serviço") geralmente é considerado uma boa prática.

Portanto, dependendo de seus critérios para "poder fazer login", convém verificar uma ou ambas as coisas.


6

Há uma diferença entre desabilitar o usuário e configurar o shell como / bin / false ou similar.

Definir o shell como / bin / false impede que o usuário obtenha um shell, mas ele ainda poderá efetuar login no sistema se usuários locais forem usados ​​para outra coisa (autenticação de email, ftp e assim por diante). Desabilitar o usuário impossibilita o uso de quaisquer serviços do servidor que usem usuários locais.


então, na verdade, todos os usuários em / etc / passwd são "poderiam fazer login", mas alguns deles estão desativados (*!) e outros são restritos (/ bin / false)?
harryz

3

Além do acima, os usuários podem ser bloqueados em um sistema, mesmo que a entrada de senha pareça correta usando vários métodos diferentes.

O /etc/security/access.conf pode ser usado para limitar quem pode fazer login.

Existem muitos módulos PAM que podem ser configurados para restringir usuários específicos ou modificar o comportamento de login com base na necessidade. (ou seja, nenhum diretório pessoal no servidor proíbe o login.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.