Fecha de creación de cuenta local

9

Para fines de cumplimiento, es necesario obtener información sobre la fecha de creación de cuentas locales (de usuarios y no usuarios) en máquinas UNIX.

¿Hay alguna forma (incluso si no es el método más confiable o preciso) para recopilar ese tipo de información?

Por ejemplo, como alternativa, busqué la homefecha de creación del directorio (para cuentas de usuario), pero descubrí que para los sistemas compatibles con POSIX, las marcas de tiempo para la creación de archivos no están disponibles.

antiautor
fuente
Como una aproximación cruda, creo que lo mejor es hacer algo de investigación forense en /var/log/auth.log(puede que tenga que buscar en los registros alternos así: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). Esto le dará una pista sobre la primera fecha de autenticación de la cuenta de usuario. Sin embargo, esto no funcionará para los usuarios del sistema y también fallará si las cuentas se crearon hace más tiempo que el syslogperíodo de rotación de registros de su cuenta.
Joseph R.
Esta información específica no se almacena en ningún lugar de forma predeterminada. pero puede intentar verificar la fecha de modificación de/home/user
Nidal

Respuestas:

3

Si se creó y no se tocó desde la creación del usuario, puede usar el .bash_logoutarchivo para determinar la fecha. Como ejecución raíz:

ls -l /home/<username>/.bash_logout

O, si el usuario tiene un directorio de inicio, puede verificar la última fecha de modificación de ese directorio:

ls -ld /home/username/

para obtener solo la fecha que puede usar awk:

ls -ld /home/username/ | awk '{ print $6,$7,$8 }'

fuente

Nidal
fuente
ls -ld /home/username/proporciona el tiempo de modificación del directorio de inicio, que probablemente no sea útil dado que este tiempo se actualiza cada vez que se agrega o elimina un archivo en el directorio de inicio.
Gilles 'SO- deja de ser malvado'
3

La creación de la cuenta puede ser registrada. En Linux (si usa el conjunto de utilidades de sombra común), useraddrealiza una entrada de registro en la instalación auth.info. Este registro generalmente se encuentra en /var/log/secureo /var/log/auth.log(depende de la distribución).

Puede verificar sus copias de seguridad /etc/passwdy ver cuál es la copia de seguridad más joven que no tiene esta cuenta. Utilizo y recomiendo etckeeper para realizar un seguimiento de los cambios /etc, por git annotate /etc/passwdlo que me daría la respuesta. (En realidad git annotate, me diría la última vez que se modificó la entrada de un usuario; un poco más de excavación cuya automatización está fuera del alcance de esta respuesta me diría cuándo se agregó la entrada).

Si carece de registros de auditoría, copias de seguridad e historial de revisiones, deberá recurrir a la heurística. Una buena pista es el archivo cuyo tiempo de cambio de inodo (ctime) es el más antiguo. Esta heurística puede encontrarse en ambos sentidos: si un directorio se mueve a la página de inicio del usuario, puede contener archivos con un ctime antiguo (pero para que sean más antiguos que el usuario, su UID no debería ser el del usuario como un cambio de uid implica actualizar el ctime, por lo que puede omitir aquellos archivos que no son propiedad del usuario); por el contrario, algunos eventos pueden cambiar el ctime de un archivo (por ejemplo, si todo el sistema se restauró desde una copia de seguridad). Puede comenzar desde el directorio de inicio del usuario ( ls -Alctr ~bob| sed -n 2p), que puede contener archivos /etc/skelque el usuario nunca ha modificado ( .bash_logoutes común), y ver si hay archivos más antiguos find ~bob ! -cnewer ~bob/.bash_logout -user bob. Con zsh, correls -ld ~bob/**/*(Doc[1]u:bob:).

Gilles 'SO- deja de ser malvado'
fuente
1
$ chage -l fred

Comprueba la fecha de cambio de contraseña.

Pablo
fuente
+1: en comparación con las otras respuestas, con excepción de los registros de auditoría (que no tiene que estar disponible) y LDAP (que no se refiere a una cuenta local), no tenemos métodos confiables para determinar la creación fechas, solo un conjunto de atributos para tener una idea. Este es uno de ellos y, en mi sistema, resultó ser el más preciso (la gente simplemente no cambió las contraseñas), aunque solo con la precisión de los días.
user1182474
1

Para los usuarios locales, puede consultar el tiempo de nacimiento de su directorio principal para aquellos sistemas y sistemas de archivos que lo registran (Linux, la mayoría de los BSD, macOS al menos). Cómo hacerlo varía con el sistema .

Para los usuarios en directorios LDAP, puede ver los atributos createTimestamp(o posiblemente whenCreated) de su entrada LDAP correspondiente:

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
Stéphane Chazelas
fuente