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

10

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

Detalhes:

Eu posso ver usuários cujos shells estão definidos como /usr/sbin/nologin e /bin/false em /etc/passwd , isso significa que eles não podem fazer login?

Eu também sei que posso definir a senha criptografada do usuário para * ou ! in /etc/shadow para desabilitar uma conta, portanto, o "usuário desabilitado" também deve ser tratado como usuário "não é possível efetuar login" certo?

    
por harryz 17.02.2014 / 05:34

3 respostas

11

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.

    
por 19.02.2014 / 17:28
6

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

Configurar o shell para / bin / false impede que o usuário obtenha um shell, mas eles ainda podem efetuar login no sistema se usuários locais forem usados para outra coisa (autenticação de correio, ftp e assim por diante). Desabilitar o usuário impossibilita que ele use os serviços do servidor que usam usuários locais.

    
por 17.02.2014 / 05:48
2

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

/etc/security/access.conf pode ser usado para limitar quem pode entrar.

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 inicial no servidor não permite login.)

    
por 03.12.2015 / 18:42