Data di creazione dell'account locale


9

Ai fini della conformità è necessario recuperare informazioni sulla data di creazione degli account locali (utente e non utente) su macchine UNIX.

Esiste un modo (anche se non è il metodo più affidabile o preciso) per raccogliere quel tipo di informazioni?

Ad esempio, in alternativa, sono andato alla ricerca della homedata di creazione della directory (per gli account utente), ma ho scoperto che per i sistemi compatibili con POSIX i timestamp per la creazione di file non sono disponibili.


Come approssimazione greggio, penso che la cosa migliore è fare un po 'di scavo forense /var/log/auth.log(potrebbe essere necessario cercare nei registri ruotati così: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). Questo ti darà un indizio sulla prima data di autenticazione dell'account utente. Tuttavia, ciò non funzionerà per gli utenti del sistema e fallirà anche se gli account sono stati creati più tempo fa rispetto al syslogperiodo di rotazione del registro.
Joseph R.

queste informazioni specifiche non sono memorizzate in nessun luogo per impostazione predefinita. ma puoi provare a controllare la data di modifica di/home/user
Nidal,

Risposte:


3

Se creato e non toccato dalla creazione dell'utente, è possibile utilizzare il .bash_logoutfile per determinare la data. Come root:

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

OPPURE, se l'utente ha una home directory, è possibile controllare la data dell'ultima modifica di quella directory:

ls -ld /home/username/

per ottenere solo la data è possibile utilizzare awk:

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

fonte


ls -ld /home/username/indica l'ora di modifica della home directory, che non è probabilmente utile dato che questa volta viene aggiornata ogni volta che un file viene aggiunto o rimosso nella directory home.
Gilles 'SO- smetti di essere malvagio'

3

La creazione dell'account potrebbe essere registrata. Sotto Linux (se si utilizza la comune utility utility shadow), useraddeffettua una voce di registro sotto la funzione auth.info. Questo registro si trova in genere in /var/log/secureo /var/log/auth.log(dipende dalla distribuzione).

Puoi controllare i tuoi backup /etc/passwde vedere qual è il backup più giovane che non ha questo account. Uso e raccomando etckeeper per tenere traccia delle modifiche /etc, quindi git annotate /etc/passwdmi darebbe la risposta. (In realtà git annotatemi direbbe l'ultima volta che la voce di un utente è stata modificata; un po 'più di scavo la cui automazione non rientra nell'ambito di questa risposta mi direbbe quando la voce è stata aggiunta.)

Se mancano registri di controllo, backup e cronologia delle revisioni, dovrai ricorrere all'euristica. Un buon indizio è il file il cui tempo di cambio dell'inode (ctime) è il più vecchio. Questa euristica può risiedere in entrambi i modi: se una directory viene spostata nella home dell'utente, può contenere file con un vecchio ctime (ma per essere più vecchi dell'utente, il loro uid non dovrebbe essere quello dell'utente come cambiamento di uid comporta l'aggiornamento di ctime, quindi puoi saltare quei file che non sono di proprietà dell'utente); al contrario, alcuni eventi possono cambiare il tempo di un file (ad es. se l'intero sistema è stato ripristinato da un backup). Puoi iniziare dalla home directory dell'utente ( ls -Alctr ~bob| sed -n 2p), che potrebbe contenere file /etc/skelche l'utente non ha mai modificato ( .bash_logoutè comune) e vedere se ci sono file più vecchi find ~bob ! -cnewer ~bob/.bash_logout -user bob. Con zsh, corrils -ld ~bob/**/*(Doc[1]u:bob:).


1
$ chage -l fred

Controlla la data di modifica della password.


+1: rispetto alle altre risposte, ad eccezione dei registri di controllo (che non devono essere disponibili) e LDAP (che non fa riferimento a un account locale), non abbiamo metodi affidabili per determinare la creazione date, solo un mucchio di attributi da guardare per avere qualche idea. Questo è uno di questi e sul mio sistema si è rivelato essere il più preciso (le persone semplicemente non hanno cambiato le password), anche se solo con la precisione dei giorni.
user1182474

1

Per gli utenti locali, è possibile guardare l' ora di nascita della loro home directory per quei sistemi e file system che lo registrano (almeno Linux, la maggior parte dei BSD, macOS). Come farlo varia con il sistema .

Per gli utenti nelle directory LDAP, puoi guardare gli attributi createTimestamp(o possibilmente whenCreated) della voce LDAP corrispondente:

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.