À 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 home
date 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.
/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 lasyslog
période de rotation des journaux de votre ./home/user
Réponses:
Si créé et non touché depuis la création de l'utilisateur, vous pouvez utiliser le
.bash_logout
fichier pour déterminer la date. En tant que root:OU, Si l'utilisateur a un répertoire personnel, vous pouvez vérifier la date de dernière modification de ce répertoire:
pour obtenir uniquement la date que vous pouvez utiliser
awk
:la source
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.La création de compte peut être enregistrée. Sous Linux (si vous utilisez la suite d'utilitaires shadow commune),
useradd
crée une entrée de journal sous la fonctionauth.info
. Ce journal est généralement situé dans/var/log/secure
ou/var/log/auth.log
(cela dépend de la distribution).Vous pouvez vérifier vos sauvegardes
/etc/passwd
et 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
, doncgit annotate /etc/passwd
me donnerait la réponse. (En fait,git annotate
cela 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/skel
que l'utilisateur n'a jamais modifiés (.bash_logout
c'est un fichier courant), et voir s'il existe des fichiers plus anciens avecfind ~bob ! -cnewer ~bob/.bash_logout -user bob
. Avec zsh, exécutezls -ld ~bob/**/*(Doc[1]u:bob:)
.la source
Vérifie la date de changement de mot de passe.
la source
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 éventuellementwhenCreated
) de leur entrée LDAP correspondante:la source