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:
Veja um trecho do arquivo e note os campos de dados, são delimitados por : (dois-pontos)
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.
- 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.
- 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:
E da usuária ana:
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í!
Escreva um comentário