Modificar a Expiração de Senha e a Associação a Grupos com chage e usermod
Nesta etapa, você gerenciará propriedades de usuário mais avançadas. Você aprenderá como aplicar políticas de segurança de senha usando o chage para controlar a expiração da senha e como gerenciar as associações de grupo de um usuário usando o usermod para controlar suas permissões e direitos de acesso.
Primeiro, vamos examinar as informações de expiração de senha para a conta student1. O comando chage (change age) com a flag -l (list) exibe esses detalhes.
sudo chage -l student1
A saída mostrará as configurações padrão para a conta. As datas corresponderão a quando você criou o usuário.
Last password change : Dec 08, 2024
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
Por segurança, é uma boa prática exigir que os usuários alterem suas senhas periodicamente. Vamos definir uma política onde a senha deve ser alterada a cada 90 dias (-M 90), só pode ser alterada uma vez a cada 7 dias (-m 7) e o usuário recebe um aviso 14 dias antes de expirar (-W 14).
sudo chage -M 90 -m 7 -W 14 student1
Agora, visualize as configurações novamente para confirmar suas alterações:
sudo chage -l student1
A saída refletirá a nova política:
Last password change : Dec 08, 2024
Password expires : Mar 08, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires : 14
Em seguida, vamos modificar as associações a grupos. Um usuário pertence a um grupo primário e pode pertencer a vários grupos secundários (ou suplementares). Você pode visualizar os grupos de um usuário com o comando id.
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1)
Isso mostra que o grupo primário do student1 é student1 (gid=5001) e ele ainda não está em nenhum grupo secundário.
Vamos criar um novo grupo chamado developers e adicionar o student1 a ele. Primeiro, crie o grupo:
sudo groupadd developers
Agora, adicione o student1 a este novo grupo usando o usermod. As flags -aG são cruciais: -G especifica os grupos secundários e -a (append) anexa o usuário ao grupo sem removê-lo de outros grupos.
sudo usermod -aG developers student1
Verifique os grupos do usuário novamente:
id student1
A saída agora inclui o grupo developers:
uid=5001(student1) gid=5001(student1) groups=5001(student1),1002(developers)
O que acontece se você esquecer a flag -a? Vamos criar outro grupo, testers, e adicionar o student1 a ele usando apenas -G.
sudo groupadd testers
sudo usermod -G testers student1
Agora verifique os grupos mais uma vez:
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1),1003(testers)
Observe que o student1 não está mais no grupo developers. Usar usermod -G sem -a substitui todos os grupos secundários existentes pela nova lista. Para ter o usuário em ambos os grupos, você deve listar todos os grupos (-G developers,testers) ou usar a flag de anexo. Vamos corrigir isso adicionando novamente o student1 ao grupo developers corretamente.
sudo usermod -aG developers student1
Verifique o estado final. O usuário deve agora ser membro de ambos os grupos.
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1),1003(testers),1002(developers)