tenta bloquear senha mas não tem entrada em / etc / shadow

1

Objetivo:

Mantendo um antigo sistema de colegas, quero bloquear todos os logins de senha para permitir somente logins baseados em chaves ssh.

Infos:

  • O sistema CentOS 6.5 não oferece nenhum recurso de autenticação baseado em rede (sem Kerberos, ldap, gssapi etc., /etc/nsswitch.conf conhece apenas "arquivos").

  • /etc/passwd mostra todos os usuários que não são do sistema que eu espero.

Problema:

/etc/shadow mostra apenas metade deles. Bloqueando suas senhas com passwd -l username trabalhado. Agora gostaria de ver as entradas para os outros usuários também e que as senhas também estejam bloqueadas.

Avaliação:

fez um passwd -l username para um dos usuários "ausentes", e o sistema me oferece passwd: Success . Mas ainda não vejo entrada para esse usuário na sombra. Alguma idéia?

    
por MarkHelms 30.08.2017 / 09:12

2 respostas

2

Teste mais

O teste definitivo, se o sistema operacional não conhecer os dados, como hash de senha, expiração, etc., é:

getent shadow thatuser

Se o sistema operacional puder obter esses dados por qualquer meio (ldap ou algo assim), haverá uma linha de saída não vazia:

getent shadow thatuser
thatuser:x:::::::

Se eu usar o editor de texto para remover uma linha de /etc/shadow , não haverá saída.

Bloqueio de senhas

Seu bloqueio de senha proposto funcionaria bem se houvesse linhas de sombra ou não. Linha de sombra inexistente significa que um usuário não pode efetuar login com uma senha.

Reencaminhar sombra

Os antigos administradores provavelmente criaram alguns usuários editando manualmente /etc/passwd . Parece feio, mas não é um erro; OS é projetado para lidar com isso. Um método rápido de preencher novamente a sombra é fazer um loop em todas as entradas passwd desses comandos:

chage -m 0 thatuser

Isso criará as linhas /etc/shadow ausentes como simplesmente login:x::0::::: . O efeito colateral é que todas as linhas /etc/shadow existentes redefinirão o "número mínimo de dias entre as alterações consecutivas de senha" para zero . Mas essa não é uma configuração usada com frequência e você provavelmente sabe se precisa dela (política da empresa, etc.).

    
por 30.08.2017 / 10:29
3

Eu acho que você deve ser capaz de desabilitar todos os logins de senha e permitir somente autenticação baseada em chaves no sistema, definindo os parâmetros de configuração abaixo na configuração ssh global (geralmente em / etc / ssh / sshd_config):

PubkeyAuthentication yes
PasswordAuthentication no

Você precisará recarregar o serviço sshd após qualquer alteração no arquivo de configuração.

    
por 30.08.2017 / 09:23