Cómo encontrar fallos e inconsistencias en los ficheros passwd y shadow

Linux passwordExiste un comando llamado pwck que mediante su ejecución verifica que la información contenida en los ficheros de autenticación /etc/passwd y /etc/shadow es correcta. Básicamente comprueba el número de campos en cada una de las entradas de los ficheros, verifica la existencia de los campos de login, UID y GID además de revisar que el directorio home de cada usuario existe y la shell que utiliza.

Su ejecución es simple, ejecutamos como root el comando y examinamos la salida, en este ejemplo vemos inconsistencia con los directorios home de varios usuarios (no existen:

# pwck
usuario «lp»: directorio «/var/spool/lpd» no existe
usuario «news»: directorio «/var/spool/news» no existe
usuario «uucp»: directorio «/var/spool/uucp» no existe
usuario «www-data»: directorio «/var/www» no existe
pwck: sin cambios

Si por ejemplo pusiéramos una shell incorrecta al usuario www-data nos avisaría del fallo:

# pwck
usuario «www-data»: directorio «/var/www» no existe
usuario «www-data»: programa «/bin/shtest» no existe

Podemos probar (¡no lo hagáis con usuarios importantes o en servidores en producción!)a eliminar la columna del grupo en el usuario. pwck nos avisará y de forma activa nos indicará si queremos eliminar la línea incorrecta:

# pwck
entrada del archivo de contraseñas no válida
¿eliminar la línea «www-data:x:33::www-data:/var/www:/bin/sh»? no
ninguna entrada del fichero de contraseñas concuerda con /etc/passwd
¿eliminar la línea «www-data:*:14889:0:99999:7:::»? no

Si aceptamos las modificaciones nos indicará que se han realizado cambios en los archivos:

pwck: los archivos se han actualizado

Os recomiendo complementar esta entrada leyendo el artículo visudo, vipw y vigr: editando ficheros críticos en Linux de forma segura

3 comentarios en “Cómo encontrar fallos e inconsistencias en los ficheros passwd y shadow

  1. Pingback: # rm-rf.es

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *