Modificar la caducidad de contraseñas y la pertenencia a grupos con chage y usermod
En este paso, gestionarás propiedades de usuario más avanzadas. Aprenderás a aplicar políticas de seguridad de contraseñas usando chage para controlar la expiración, y a gestionar la pertenencia a grupos de un usuario con usermod para controlar sus permisos y derechos de acceso.
Primero, examinemos la información de caducidad de la contraseña para la cuenta student1. El comando chage (change age) con el indicador -l (list) muestra estos detalles.
sudo chage -l student1
La salida mostrará la configuración por defecto de la cuenta. Las fechas corresponderán al momento en que creaste el usuario.
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 seguridad, es una buena práctica exigir que los usuarios cambien sus contraseñas periódicamente. Vamos a establecer una política donde la contraseña deba cambiarse cada 90 días (-M 90), solo pueda cambiarse una vez cada 7 días (-m 7), y el usuario reciba una advertencia 14 días antes de que caduque (-W 14).
sudo chage -M 90 -m 7 -W 14 student1
Ahora, visualiza la configuración de nuevo para confirmar los cambios:
sudo chage -l student1
La salida reflejará la nueva 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
A continuación, modifiquemos la pertenencia a grupos. Un usuario pertenece a un grupo primario y puede pertenecer a múltiples grupos secundarios (o suplementarios). Puedes ver los grupos de un usuario con el comando id.
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1)
Esto muestra que el grupo primario de student1 es student1 (gid=5001) y que aún no pertenece a ningún grupo secundario.
Vamos a crear un nuevo grupo llamado developers y añadir a student1 a él. Primero, crea el grupo:
sudo groupadd developers
Ahora, añade a student1 a este nuevo grupo usando usermod. Los parámetros -aG son cruciales: -G especifica los grupos secundarios y -a (append) añade al usuario al grupo sin eliminarlo de sus otros grupos actuales.
sudo usermod -aG developers student1
Verifica de nuevo los grupos del usuario:
id student1
La salida incluye ahora el grupo developers:
uid=5001(student1) gid=5001(student1) groups=5001(student1),1002(developers)
¿Qué sucede si olvidas el parámetro -a? Vamos a crear otro grupo, testers, y añadiremos a student1 usando solo -G.
sudo groupadd testers
sudo usermod -G testers student1
Comprueba los grupos una vez más:
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1),1003(testers)
Observa que student1 ya no está en el grupo developers. Usar usermod -G sin -a reemplaza todos los grupos secundarios existentes por la nueva lista. Para que el usuario esté en ambos grupos, deberías listar todos los grupos (-G developers,testers) o usar el parámetro de anexar. Corrijamos esto volviendo a añadir a student1 al grupo developers correctamente.
sudo usermod -aG developers student1
Verifica el estado final. El usuario debería ser ahora miembro de ambos grupos.
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1),1003(testers),1002(developers)