Gerenciando Usuários no Linux 003: Alterar Senha/Token com passwd

Para alterar a senha do seu usuário em Linux precisa apenas digitar “passwd”, apresentar a senha atual e depois a nova.

[joao@centos65 ~]$ passwd
Mudando senha para o usuário joao.
Mudando senha para joao.
Senha UNIX (atual):
Nova senha:
Redigite a nova senha:
passwd: todos os tokens de autenticações foram atualizados com sucesso.

Se você for admin e precisa alterar a senha de um outro usuário, basta usar “sudo passwd nomeDoUsuario”

[elder@centos65 ~]$ sudo passwd marcos
Mudando senha para o usuário marcos.
Nova senha:
Redigite a nova senha:
passwd: todos os tokens de autenticações foram atualizados com sucesso.

Por ter usado comando sudo você não será solicitado a digitar a senha antiga, apenas criar uma nova.

Isso já é o bastante para alcançar seus objetivos, mas se quiser saber mais então leia abaixo:

Bom, agora vamos para o blá blá blá…

Descrição de passwd

passwd é uma abreviação para password que em inglês quer dizer senha, contra-senha, palavra-chave etc…

Segundo o manual,

passwd = O programa é usado para atualizar autenticação de tokens de usuários. Essa atualização de token é feita por meio de chamadas a Linux-PAM e Libuser API

 

Opções de  passwd

  • -l =  serve para bloquear uma conta de usuário.
  • –stdin = Com essa opção passwd ler a senha pelo standart input(entrada padrão). Entrada padrão geralmente se refere ao teclado e  saída padrão(standart output) se refere a monitor.
  • -u = Desbloqueia o usuário que foi  bloqueado com -l.
  • -d  = Exclui a senha do usuário. Assim o usuário consegue logar sem senha. Parece ótimo né? só que não.
  • -e =  Faz com que a senha do usuário fique expirada imediatamente e forçará a troca de senha.
  • -n = Vida útil da senha. por exemplo, se definirmos como 2 o usuário não conseguirá alterar a senha a qualquer momento, somente a cada 2 dias. É a vida mínima da senha.
  • -x = Essa é a  vida máxima da senha. Se, por exemplo, colocarmos 10 o usuário será forçado a alterar a senha a cada 10 dias.
  • -w = O número de dias que o usuário será alertado sobre a expiração da senha. Se colocarmos 7 isso quer dizer que o usuário será lembrado a trocar de senha durante os 7 últimos dias da expiração.
  • -i = Define o número de dias depois que a senha já expirou em que esta será tida inativa e deve ser desativada.
  • -S = essa opção exibe uma breve informação sobre o status da senha de uma conta.

 

Praticando o Comando passwd

Alterado a senha

  1. Alterando a minha senha.
    [elder@centos65 ~]$ passwd
    Mudando senha para o usuário elder.
    Mudando senha para elder.
    Senha UNIX (atual):
    Nova senha:
    Redigite a nova senha:
    passwd: todos os tokens de autenticações foram atualizados com sucesso.
    

    Para mudar a senha do seu usuário basta digitar apenas “passwd”. Para mudar a senha de outro usuário basta colocar o nome do usuário na frente, como em “sudo passwd marcos”

  2. Alterar a senha do usuário Lucas
    [elder@centos65 ~]$ sudo passwd  lucas
    Mudando senha para o usuário lucas.
    Nova senha:
    Redigite a nova senha:
    passwd: todos os tokens de autenticações foram atualizados com sucesso.

    Como usamos “sudo” não precisamos saber a senha antiga do usuário.

Criando um novo usuário e obervando os arquivos /etc/passwd, /etc/shadow

 

  1. Crie o usuário ronaldo
    [elder@centos65 ~]$ sudo useradd ronaldo
  2. Observando as 4 últimas linhas do arquivo /etc/passwd vemos que foi criada uma linha para o usuário ronaldo
    [elder@centos65 ~]$ tail -n 4 /etc/passwd
    lucas:x:1001:1001::/home/lucas:/bin/bash
    joao:x:1002:1002::/home/joao:/bin/bash
    marcos:x:1003:1003:Marcos da Silva Sauro:/home/marcos:/bin/sh
    ronaldo:x:1004:1004::/home/ronaldo:/bin/bash
  3. Foi criada também uma linha no /etc/shadow
    [elder@centos65 ~]$ sudo tail -n 4 /etc/shadow
    lucas:$6$iDBNB......334:0:99999:7::18394:
    joao:$6$TDSMOl0.....FtrEUiWLqfo:18334:0:99999:7:::
    marcos:$6$/TKfSw.....DDY3eZRTBV:18334:3:99999:7:10:18373:
    ronaldo:!!:18334:0:99999:7:::

    Veja que todos os outros usuários possuem senhas(em verde) e ronaldo está com duas exclamações(em vermelho), isso significa que como ele acabou de ser criado precisamos criar uma senha para ele.

  4. Crie uma senha para ronaldo e observe o arquivo /etc/shadow
    [elder@centos65 ~]$ sudo passwd ronaldo
    Mudando senha para o usuário ronaldo.
    Nova senha:
    Redigite a nova senha:
    passwd: todos os tokens de autenticações foram atualizados com sucesso.
    [elder@centos65 ~]$ sudo tail -n1 /etc/shadow
    ronaldo:$6$.fQpk3....K.mv1umjck4:18334:0:99999:7:::

    Pronto, agora ronaldo possui uma senha(em verde).   $6$.fQpk3….K.mv1umjck4   é uma representação ‘criptografada’ da senha que criei. Isso é por segurança, já que se a senha fosse exibida em sua forma exata seria muito fácil ser roubada.

  5. Vamos bloquear a senha do usuário ronaldo e ver o arquivo /etc/shadow
    [elder@centos65 ~]$ sudo passwd -l ronaldo
    Bloqueando senha para o usuário ronaldo.
    passwd: Sucesso
    [elder@centos65 ~]$ sudo tail -n1 /etc/shadow
    ronaldo:!!$6$.fQpk3....K.mv1umjck4:18334:0:99999:7:::

    Apareceu duas exclamações no início da senha indicando o seu bloqueio

    observe com o comando “passwd -S”

    [elder@centos65 ~]$ sudo passwd -S ronaldo
    ronaldo LK 2020-03-12 0 99999 7 -1 (Senha bloqueada.)
    
  6. Tente logar com o usuário
    [elder@centos65 ~]$ su ronaldo
    Senha:
    su: senha incorreta

    Aparece senha incorreta, mas na verdade é por conta do bloqueio.

  7. Vamos desbloquear o usuário e ver as alterações nos arquivos
    [elder@centos65 ~]$ sudo passwd -u ronaldo
    Desbloqueando senha para o usuário ronaldo.
    passwd: Sucesso
    [elder@centos65 ~]$ sudo tail -n1 /etc/shadow
    ronaldo:$6$.fQpk3....K.mv1umjck4:18334:0:99999:7:::
    

    As exclamações desapareceram. Usuário livre para acessar sua conta.

  8. Delete a senha do usuário de modo que ele consiga acessar sua conta sem precisar digitar senha, mas deixando uma grande brecha de ataque aberta 🙂
    [elder@centos65 ~]$ sudo passwd -d ronaldo 
    Removendo senha para o usuário ronaldo.
    passwd: Sucesso
    
    [elder@centos65 ~]$ sudo tail -n1 /etc/shadow
    ronaldo::18334:0:99999:7:::

    Veja o espaço vazio onde antes havia  a senha criptografada(ou o hash da senha)

  9. Tente logar com o usuário ronaldo
    [elder@centos65 ~]$ su ronaldo
    [ronaldo@centos65 elder]$

    Prontinho, acessou sem senha.

    Digite exit e saia da conta.

Expiração de senha, Vida mínima, máxima e alertas

    1. recrie a senha para ronaldo
      [elder@centos65 ~]$ sudo passwd ronaldo
      Mudando senha para o usuário ronaldo.
      Nova senha:
      Redigite a nova senha:
      passwd: todos os tokens de autenticações foram atualizados com sucesso.

      Outro hash foi criado. Ao invés de usar “tail -n1” para retornar a última linha irei usar “grep” só para variar 🙂

      [elder@centos65 ~]$ sudo grep ronaldo /etc/shadow
      ronaldo:$6$aRCynWpuZN0:18334:0:99999:7:::
      

      Coloquei a mesma senha anterior mas o hash é diferente, antes era  $6$.fQpk3….K.mv1umjck4 e agora $6$aRCynWpuZN0:18334.

      Isso é por motivo de segurança!

    2. Defina para senha- vida máxima de 30 dias
      – vida mínima de 2 dias
      – Emitir alertas nos últimos 7 dias.

      [elder@centos65 ~]$ sudo passwd -n2 -x30 -w7 ronaldo
      Ajustando dados de expiração para o usuário ronaldo.
      passwd: Sucesso

Use “passwd -S” e “chage -l”

[elder@centos65 ~]$ sudo passwd -S ronaldo
ronaldo PS 2020-03-12 2 30 7 -1 (Definição de senha, criptografia SHA512.)
[elder@centos65 ~]$ sudo chage -l ronaldo
Última mudança de senha					: Mar 13, 2020
Senha expira					: Abr 12, 2020
Senha inativa					: nunca
Conta expira						: nunca
Número mínimo de dias entre troca de senhas		: 2
Número máximo de dias entre troca de senhas		: 30
Número de dias de avisos antes da expiração da senha	: 7

Hoje é 13/03/2020, como colocamos para forçar a troca de senha daqui a 30 dias lá aparece que expira em 12/04/2020

Trocando a senha com “passwd –stdin”

Essa forma não é recomendada já que sua senha ficará visível de alguma forma. Mas vamos lá.

  1. Usando comando “echo”
    [elder@centos65 ~]$ echo  "senha1234" | sudo passwd --stdin ronaldo
    Mudando senha para o usuário ronaldo.
    passwd: todos os tokens de autenticações foram atualizados com sucesso.
  2. Usando um arquivo.Crie um arquivo
    [elder@centos65 ~]$ echo "outrasenha1234" > arquivoSegredo.txt

    use o conteúdo do arquivo como senha para ronaldo

    [elder@centos65 ~]$ cat arquivoSegredo.txt | sudo passwd --stdin ronaldo
    Mudando senha para o usuário ronaldo.
    passwd: todos os tokens de autenticações foram atualizados com sucesso.

 

Expirando a Senha Imediatamente com passwd -e

  1. Force a troca da senha expirando-a
    [elder@centos65 ~]$ sudo passwd -e ronaldo
    Expiring password for user ronaldo.
    passwd: Sucesso
  2. Com “chage  -l” aparece
    [elder@centos65 ~]$ sudo chage -l ronaldo
    Última mudança de senha					: Senha modificada
    Senha expira					: Senha modificada
    Senha inativa					: Senha modificada
    Conta expira						: nunca
    Número mínimo de dias entre troca de senhas		: 2
    Número máximo de dias entre troca de senhas		: 30
    Número de dias de avisos antes da expiração da senha	: 7
    
  3. Tente logar com a conta ronaldo e verá que será solicitada a troca de senha
    [elder@centos65 ~]$ su ronaldo
    Senha:
    Mude sua senha imediatamente (aplicado pela raiz)
    Mudando senha para ronaldo.
    Senha UNIX (atual):
    Nova senha:
    Redigite a nova senha:

    Saia da conta digitando exit.

  4. Veja novamente as informações do comando “chage -l”
    [elder@centos65 ~]$ sudo chage -l ronaldo
    Última mudança de senha					: Mar 13, 2020
    Senha expira					: Abr 12, 2020
    Senha inativa					: nunca
    Conta expira						: nunca
    Número mínimo de dias entre troca de senhas		: 2
    Número máximo de dias entre troca de senhas		: 30
    Número de dias de avisos antes da expiração da senha	: 7
    

Continua….

Até!

Link Facebook: https://www.facebook.com/gnulinuxbr

Link WhatsApp: https://chat.whatsapp.com/LYHbESy75Q0GiORiexXKF4

Link Telegram: https://t.me/gnulinux_brasil

YouTube: https://www.youtube.com/channel/UCwyFWDqE0v7SwpZenjmzxYQ

 

 

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *