O que é o arquivo Linux / etc / shadow e o que ele faz?

Procurando nos arquivos do sistema Linux, você pode ter encontrado um arquivo no diretório / etc chamado shadow . Pode parecer assustador, mas é realmente um arquivo seguro, necessário e útil para a administração do sistema.

Hoje, examinaremos mais de perto o conteúdo do arquivo / etc / shadow e o que ele pode dizer sobre o seu sistema.

O que é / etc / shadow?

Por mais misterioso que pareça, a função do arquivo é bastante direta. O arquivo / etc / shadow contém informações sobre os usuários de um sistema Linux, suas senhas e os regulamentos de tempo para suas senhas.

Quando você cria ou altera uma senha no Linux , o sistema faz o hash e a armazena no arquivo shadow. Quaisquer regras de senha atribuídas pelo administrador, como datas de expiração e períodos de inatividade, também permanecerão aqui. O arquivo shadow pode informar aos protocolos de autenticação se a senha de um usuário está correta, por exemplo, ou quando expirou.

Você nunca deve editar o arquivo shadow diretamente. É mantido por processos automatizados e não deve ser modificado por usuários regulares. No entanto, as informações que ele contém podem ser valiosas para você, portanto, vale a pena dar uma olhada.

O que há no arquivo shadow do Linux?

Para ver o conteúdo do arquivo shadow, abra um terminal e execute o comando cat nele:

 sudo cat /etc/shadow

Você verá um prompt solicitando sua senha. Supondo que você tenha permissões administrativas, você verá uma impressão de sequências de texto semelhantes a esta (reticências marcam onde a sequência foi cortada para caber na tela):

 muo1:$6$IK2...$20a...:18731:0:99999:7:::

Parece enigmático e, de fato, parte dele é texto criptografado. A string segue uma construção particular, no entanto, e pedaços casas específicas de informação, delineados por dois pontos: caracteres ().

Aqui está um layout completo da string:

 [username]:[password]:[date of last password change]:[minimum password age]:[maximum password age]:[warning period]:[inactivity period]:[expiration date]:[unused]

Vamos dar uma olhada em cada um desses campos:

1. Nome de usuário

Tudo o que segue na string está associado a este nome de usuário.

2. Senha

O campo de senha consiste em três campos adicionais, delineados por cifrões: $ id $ salt $ hash .

  • id: define o algoritmo de criptografia usado para criptografar sua senha. Os valores podem ser 1 (MD5), 2a (Blowfish), 2y (Eksblowfish), 5 (SHA-256) ou 6 (SHA-512).
  • salt: Este é o salt usado para criptografar e autenticar a senha.
  • hash: esta é a senha do usuário conforme aparece após o hash. O arquivo shadow mantém uma versão em hash de sua senha para que o sistema possa verificar qualquer tentativa de digitação de sua senha.

Saiba mais: Termos básicos de criptografia definidos

Às vezes, o campo de senha contém apenas um asterisco ( * ) ou ponto de exclamação ( ! ). Isso significa que o sistema desabilitou a conta do usuário ou o usuário deve se autenticar por meios diferentes de uma senha. Geralmente, esse é o caso de processos do sistema (também conhecidos como pseudo-usuários) que você provavelmente encontrará no arquivo shadow.

3. Data da última alteração de senha

Aqui você encontrará a última vez que este usuário alterou sua senha. Observe que o sistema exibe a data no formato de hora Unix .

4. Idade mínima da senha

Você encontrará aqui o número de dias que o usuário deve esperar depois de alterar sua senha antes de alterá-la novamente.

Se o mínimo não for definido, o valor aqui será 0.

5. Idade máxima da senha

Isso define quanto tempo um usuário pode ficar sem alterar sua senha. Alterar a senha com frequência tem seus benefícios , mas, por padrão, o valor será definido em generosos 99.999 dias. Isso é quase 275 anos.

6. Período de Aviso

Este campo determina o número de dias antes que uma senha atinja sua idade máxima, durante os quais o usuário receberá lembretes para alterar sua senha.

7. Período de inatividade

Este é o número de dias que podem passar após a senha do usuário atingir sua idade máxima antes que o sistema desative a conta. Pense nisso como um "período de carência" durante o qual o usuário tem uma segunda chance de alterar sua senha, mesmo que ela esteja tecnicamente expirada.

8. Data de Vencimento

Esta data é o fim do período de inatividade quando o sistema irá desabilitar automaticamente a conta do usuário. Uma vez desativado, o usuário não poderá fazer o login até que um administrador o habilite novamente.

Este campo ficará vazio se não for configurado, e se for configurado, a data aparecerá no tempo da época.

9. Não utilizado

Este campo atualmente não tem nenhum propósito e é reservado para uso futuro em potencial.

O arquivo sombra explicado

O arquivo shadow realmente não é misterioso. Lembre-se, entretanto, que se você deseja alterar as senhas e as regras de senha, deve evitar editar o arquivo shadow diretamente e, em vez disso, optar por usar as ferramentas designadas para esse fim.

Sempre que você adiciona um novo usuário ao sistema Linux, o arquivo / etc / shadow é modificado automaticamente para armazenar as informações de autenticação sobre o usuário.