Date de création du compte local

9

À des fins de conformité, il est nécessaire de récupérer des informations concernant la date de création des comptes locaux (utilisateur et non utilisateur) sur les machines UNIX.

Existe-t-il un moyen (même si ce n'est pas la méthode la plus fiable ou la plus précise) de collecter ce type d'informations?

Par exemple, comme alternative, je suis allé chercher la homedate de création de répertoire (pour les comptes d'utilisateurs), mais j'ai découvert que pour les systèmes compatibles POSIX, les horodatages pour la création de fichiers ne sont pas disponibles.

antiauthor
la source
En tant que grossière approximation, je pense que le mieux est de faire quelques recherches médico - légale /var/log/auth.log(vous devrez peut - être regarder dans les journaux ayant subi une rotation ainsi: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). Cela vous donnera un indice quant à la première date d'authentification du compte d'utilisateur. Cela ne fonctionnera pas pour les utilisateurs du système et échouera également si les comptes ont été créés il y a plus longtemps que la syslogpériode de rotation des journaux de votre .
Joseph R.
par défaut, ces informations spécifiques ne sont stockées nulle part. mais vous pouvez essayer de vérifier la date de modification de/home/user
Nidal

Réponses:

3

Si créé et non touché depuis la création de l'utilisateur, vous pouvez utiliser le .bash_logoutfichier pour déterminer la date. En tant que root:

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

OU, Si l'utilisateur a un répertoire personnel, vous pouvez vérifier la date de dernière modification de ce répertoire:

ls -ld /home/username/

pour obtenir uniquement la date que vous pouvez utiliser awk:

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

la source

Nidal
la source
ls -ld /home/username/donne l'heure de modification du répertoire personnel, ce qui n'est probablement pas utile étant donné que cette heure est mise à jour chaque fois qu'un fichier est ajouté ou supprimé dans le répertoire principal.
Gilles 'SO- arrête d'être méchant'
3

La création de compte peut être enregistrée. Sous Linux (si vous utilisez la suite d'utilitaires shadow commune), useraddcrée une entrée de journal sous la fonction auth.info. Ce journal est généralement situé dans /var/log/secureou /var/log/auth.log(cela dépend de la distribution).

Vous pouvez vérifier vos sauvegardes /etc/passwdet voir quelle est la plus jeune sauvegarde qui n'a pas ce compte. J'utilise et recommande etckeeper pour garder une trace des changements dans /etc, donc git annotate /etc/passwdme donnerait la réponse. (En fait, git annotatecela me dirait la dernière fois que l'entrée d'un utilisateur a été modifiée; un peu plus de fouilles dont l'automatisation est hors de portée de cette réponse me dirait quand l'entrée a été ajoutée.)

Si vous manquez de journaux d'audit, de sauvegardes et d'historique de révision, vous devrez recourir à l'heuristique. Un bon indice est le fichier dont le temps de changement d'inode (ctime) est le plus ancien. Cette heuristique peut aller dans les deux sens: si un répertoire est déplacé au domicile de l'utilisateur, il peut contenir des fichiers avec un ancien ctime (mais pour qu'ils soient plus anciens que l'utilisateur, leur UID ne devrait pas être celui de l'utilisateur en tant que changement of uid implique la mise à jour de ctime, vous pouvez donc ignorer les fichiers qui n'appartiennent pas à l'utilisateur); à l'inverse, certains événements peuvent modifier le temps d'un fichier (par exemple, si le système entier a été restauré à partir d'une sauvegarde). Vous pouvez démarrer à partir du répertoire personnel de l'utilisateur ( ls -Alctr ~bob| sed -n 2p), qui peut contenir des fichiers /etc/skelque l'utilisateur n'a jamais modifiés ( .bash_logoutc'est un fichier courant), et voir s'il existe des fichiers plus anciens avec find ~bob ! -cnewer ~bob/.bash_logout -user bob. Avec zsh, exécutezls -ld ~bob/**/*(Doc[1]u:bob:).

Gilles 'SO- arrête d'être méchant'
la source
1
$ chage -l fred

Vérifie la date de changement de mot de passe.

Pablo
la source
+1: Par rapport aux autres réponses, à l'exception des journaux d'audit (qui ne doivent pas être disponibles) et LDAP (qui ne fait pas référence à un compte local), nous n'avons aucune méthode fiable pour déterminer la création dates, juste un tas d'attributs à regarder pour avoir une idée. C'est l'un d'entre eux et sur mon système, il s'est avéré être le plus précis (les gens n'ont tout simplement pas changé de mot de passe), bien qu'avec la précision des jours.
user1182474
1

Pour les utilisateurs locaux, vous pouvez consulter l' heure de naissance de leur répertoire personnel pour les systèmes et les systèmes de fichiers qui l'enregistrent (Linux, la plupart des BSD, macOS au moins). La façon de procéder varie selon le système .

Pour les utilisateurs des annuaires LDAP, vous pouvez consulter les attributs createTimestamp(ou éventuellement whenCreated) de leur entrée LDAP correspondante:

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