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.