Vários comandos Linux podem ser usados para definir uma data de expiração para uma senha, dependendo de quais informações você precisa configurar. Aqui está um colapso dos mais comuns e úteis:  
 1. `chage` (altere as informações de expiração da senha do usuário):   Este é o comando principal para gerenciar a política de envelhecimento de senha. Ele permite definir vários aspectos da expiração de senha, incluindo a última data de alteração, idade mínima, idade máxima, período de aviso e período de inatividade.  
 * 
 Defina a idade máxima da senha (necessária para mudar):   `` `BASH 
 sudo chage -m 
  
 `` ` 
 
 * `-M `:define o número máximo de dias que uma senha é válida. Após esse período, o usuário deverá alterar sua senha no próximo login. 
 * ``:o nome de usuário para quem você está definindo a expiração da senha. 
 *  Exemplo: `sudo chage -m 90 user1` (define a idade máxima da senha para o usuário de 1 a 90 dias) 
 
 *  Defina a data da última alteração de senha: 
 
 `` `BASH 
 sudo chage -d   
 `` ` 
 
 * `-D `:define a data em que a senha foi alterada pela última vez. Isso é crucial porque a idade máxima (`-m`) é calculada * a partir desta data. Se você deseja que uma senha expire em uma data específica, precisará manipular a última data alterada. 
 *  Exemplo: Digamos que você queira que a senha do User2 expire em 2024-12-31 e hoje é 2024-11-01. Você faria:
 
 `` `BASH 
 sudo chage -d 2024-11-01 Usuário2 # Defina a última data alterada para hoje 
 sudo chage -m 60 user2 # defina a idade máxima para 60 dias (expire em 2024-12-31) 
 `` ` 
 
 *  Defina o período de inatividade da senha: 
 
 `` `BASH 
 sudo chage -i   
 `` ` 
 * `-I `:define o número de dias após a senha expirar que a conta se torna inativa. O usuário não poderá fazer login até que a conta seja reativada. Definir isso como 0 significa que a conta é bloqueada imediatamente após a expiração da senha. 
 *  Exemplo: `sudo chage -i 7 user3` (define o período de inatividade para o usuário 3 a 7 dias) 
 
 *  Defina os dias de aviso antes da expiração: 
 
 `` `BASH 
 sudo chage -w   
 `` ` 
 
 * `-W `:define o número de dias antes da expiração da senha de que o usuário é avisado para alterar sua senha. 
 *  Exemplo: `sudo chage -w 7 user4` (define o período de aviso para o usuário 4 a 7 dias) 
 
 *  Ver Política atual de envelhecimento de senha: 
 
 `` `BASH 
 sudo chage -l  
 `` ` 
 
 * `-l`:exibe as informações do envelhecimento da conta, incluindo a última data alterada, idade mínima, idade máxima, período de aviso e período de inatividade. Isso é essencial para verificar suas alterações. 
 
  2. `passwd` (altere a senha do usuário): 
 
 Embora o `passwd` seja principalmente para alterar senhas, ele * implicitamente * interage com a política de expiração da senha. Quando um usuário altera sua senha usando o `passwd`, a data" última alterada "é atualizada e o cálculo da idade máxima começa a partir desse ponto. Você não pode usá -lo para definir diretamente a idade máxima, o período de aviso, etc. 
 
 *  Força um usuário a alterar sua senha no próximo login (definindo a última data alterada para 0): 
 
 `` `BASH 
 sudo passwd -e  
 `` ` 
 
 * `-e`:expira a senha imediatamente, forçando uma alteração no próximo login. Isso define efetivamente a última data alterada para zero dias atrás. 
 *  Exemplo: `sudo passwd -e user5` 
 
  Considerações importantes: 
 
 *  Privilégios de raiz: A maioria desses comandos (especialmente `` gage 'ao modificar outros usuários) exige privilégios root. Use `sudo` antes do comando. 
 *  PAM (módulos de autenticação travável): A expiração de senha é fortemente influenciada pela configuração do PAM. O diretório `/etc/pam.d/` contém arquivos de configuração que determinam como a autenticação (incluindo alterações de senha e vencimento) é tratada. Embora você normalmente não precise editar esses arquivos diretamente para definir vencimentos simples com `chage`, o entendimento do PAM é crucial para cenários mais complexos. 
 *  `/etc/login.defs`: Este arquivo contém configurações padrão em todo o sistema para criação de contas, incluindo políticas de expiração de senha. Você pode definir os padrões aqui, mas as configurações de `chage` para usuários individuais substituem esses padrões. As configurações de chave em `/etc/login.defs` são:
 * `Pass_max_days`:número máximo de dias uma senha pode ser usada. 
 * `Pass_min_days`:número mínimo de dias permitidos entre as alterações de senha. 
 * `Pass_warn_age`:número de dias de aviso antes que uma senha expire. 
 *  Segurança: Considere cuidadosamente sua política de expiração de senha. Forçar alterações frequentes de senha pode levar aos usuários a escolher senhas mais fracas que são mais fáceis de lembrar. Equilibrar segurança com usabilidade. Considere outras medidas de segurança, como a autenticação de vários fatores. 
 *  Teste: Sempre teste suas configurações de expiração de senha em uma conta de usuário de teste * antes de * aplicá -las a sistemas de produção. Verifique se os avisos aparecem conforme o esperado e que a expiração da senha funciona corretamente. 
 *  Comunicação do usuário: Informe os usuários com antecedência sobre quaisquer alterações na Política de Expiração de Senha para evitar frustração e suporte chamadas. 
 
  Cenário de exemplo: 
 
 Digamos que você queira definir a seguinte política de senha para `user6`:
 
 * A senha expira após 60 dias. 
 * O usuário recebe um aviso 7 dias antes da expiração. 
 * A conta fica inativa se a senha não for alterada dentro de 3 dias após a expiração. 
 
 Aqui está a sequência de comandos que você usaria:
 
 `` `BASH 
 sudo chage -m 60 user6 # defina a senha máxima idade para 60 dias 
 sudo chage -W 7 Usuário6 # Definir período de aviso para 7 dias 
 sudo chage -i 3 usuário6 # defina um período de inatividade para 3 dias 
 sudo chage -l user6 # verifique as configurações 
 `` ` 
 
 Lembre -se de sempre verificar suas configurações usando `chage -l` depois de fazer alterações. 
 
 Em resumo, o `chage` é o comando mais poderoso e flexível para controlar a expiração de senha no Linux. Compreender suas opções e como eles interagem com outras configurações do sistema é essencial para gerenciar a segurança da conta do usuário.