O arquivo de senhas /etc/shadow no Linux

O arquivo de senhas /etc/shadow no Linux

O arquivo do sistema /etc/shadow é usado para armazenar as senhas dos usuários criptografadas no linux, além de informações sobre datas de expiração e validade das contas.

Esse arquivo somente pode ser lido pelo usuário root ou membros do grupo shadow, possuindo permissões bem restritivas, como por exemplo a permissão -rw-r----- . Essas permissões podem variar um pouco dependendo do sistema considerado:Arquivo de senhas shadow no Linux

Veja um trecho do arquivo e note os campos de dados, são delimitados por : (dois-pontos)Conteúdo do arquivo de senhas shadow do Linux

A definição desses campos é apresentada a seguir, em ordem:

  • Nome de acesso
    • É nome da conta do usuário; o UID não e usado neste arquivo, e o nome de usuário e vinculado às entradas de /etc/passwd;
  • Senha criptografada
    • Armazenada de forma criptografada - na verdade, trata-se de um hash da senha; se houver um asterisco ou ponto de exclamação significa que a conta não possui senha, ou seja, essa conta não aceita login - está travada. Comum em contas do sistema.
      O comando usermod -L adiciona um símbolo ! a este campo para bloquear a conta.
  • Ultima mudança de senha
    • Data da ultima alteração de senha, armazenada como o número de dias decorridos desde 01/01/1970.
  • Dias até que a senha possa ser alterada novamente
    • Número de dias que devem se passar até que seja possível alterar a senha.
  • Dias antes que uma alteração seja necessária
    • Número de dias após a ultima alteração de senha antes que outra alteração seja requisitada.
  • Dias de avisos antes da expiração da senha
    • Se o sistema for configurado para expirar senhas, é possível configurá-lo para avisar ao usuário que a data de expiração está se aproximando.
  • Dias entre expiração e desativação
    • Número de dias que decorrerão entre a expiração da senha e o travamento da conta do usuário. Uma conta expirada não pode ser usada ou pode requerer que o usuário altere sua senha no momento do login; já uma conta desabilitada perde sua senha, e só poderá ser usada novamente quando o administrador a reativar.
  • Data de expiração
    • Data na qual a conta será desabilitada. A data é expressa como o número de dias decorridos a partir de 01/01/1970. É um campo muito útil para contas temporárias.
  • Flag especial
    • Este campo é reservado para uso futuro; geralmente se encontra vazio.

Os valores -1 e 99999 em alguns dos campos significam que o item em questão está desabilitado.

Para alterar os valores dos campos desse arquivo usamos os comandos usermod, chage e passwd.

Observações sobre hash da senha armazenado

A senha, que está no segundo campo, está criptografada. Veja um trecho da senha criptografada do usuário fabio:Senha criptografada no arquivo shadow do Linux

E da usuária ana:criptografia de senhas no arquivo shadow do linux - hashes

Ambos usam a mesma senha nesse computador, mas as senhas criptografadas são completamente diferentes.

Na verdade o que está armazenado ali não é a senha em si, mas um hash da senha, que é um valor gerado a partir de um cálculo matemático complexo (algoritmo) aplicado sobre a senha. O único trecho que é igual nas duas senhas são os primeiros caracteres, $6$, que indicam qual é o algoritmo de hash que está sendo utilizado no sistema. Neste caso, trata-se de um hash SHA-512, altamente seguro.

Outros tipos possíveis e seus códigos são os seguintes:

  • $1 = Algoritmo de hash MD5.
  • $2 = Algoritmo de hash Blowfish.
  • $2a= Algoritmo de hash eksblowfish.
  • $5 = Algoritmo de hash SHA-256.
  • $6 = Algoritmo de hash SHA-512.

Mais informações sobre os hashes e criptografia em geral podem ser vistas no vídeo a seguir:

E um vídeo específico sobre o arquivo /etc/shadow pode ser assistido abaixo:

É isso aí!

Sobre Fábio dos Reis (1262 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*