Data de criação da conta local

9

Para fins de conformidade, é necessário buscar informações sobre a data de criação de contas locais (usuários e não usuários) em máquinas UNIX.

Existe alguma maneira (mesmo que não seja o método mais confiável ou preciso) para coletar esse tipo de informação?

Por exemplo, como alternativa, procurei a homedata de criação do diretório (para contas de usuário), mas descobri que, para sistemas compatíveis com POSIX, os registros de data e hora para criação de arquivos não estão disponíveis.

antiautor
fonte
Como uma aproximação grosseira, eu acho que sua melhor aposta é para fazer alguma escavação forense em /var/log/auth.log(você pode precisar de olhar nos logs rotacionados bem: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). Isso lhe dará uma pista sobre a primeira data em que a conta do usuário foi autenticada. Porém, isso não funcionará para usuários do sistema e também falhará se as contas foram criadas há mais tempo do que o syslogperíodo de rotação de logs do seu .
Joseph R.
essas informações específicas não são armazenadas em nenhum lugar por padrão. mas você pode tentar verificar data de modificação de/home/user
Nidal

Respostas:

3

Se criado e não tocado desde a criação do usuário, você pode usar o .bash_logoutarquivo para determinar a data. Como execução raiz:

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

OU, se o usuário tiver um diretório inicial, você poderá verificar a data da última modificação do diretório:

ls -ld /home/username/

para obter apenas a data que você pode usar awk:

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

fonte

Nidal
fonte
ls -ld /home/username/fornece o tempo de modificação do diretório inicial, o que provavelmente não será útil, pois esse tempo é atualizado sempre que um arquivo é adicionado ou removido no diretório inicial.
Gilles 'SO- stop be evil' em
3

A criação da conta pode ser registrada. No Linux (se estiver usando o conjunto de utilitários de sombra comum), useraddfaça uma entrada de log no recurso auth.info. Esse log geralmente está localizado em /var/log/secureou /var/log/auth.log(depende da distribuição).

Você pode verificar seus backups /etc/passwde ver qual é o backup mais jovem que não possui esta conta. Eu uso e recomendo o etckeeper para acompanhar as mudanças /etc, por git annotate /etc/passwdisso me daria a resposta. (Na verdade git annotate, me dizia a última vez que a entrada de um usuário foi alterada; um pouco mais de escavação cuja automação está fora do escopo desta resposta me diria quando a entrada foi adicionada.)

Se você não possui logs de auditoria, backups e histórico de revisões, precisará recorrer à heurística. Uma boa pista é o arquivo cujo tempo de alteração do inode (ctime) é o mais antigo. Essa heurística pode estar nos dois sentidos: se um diretório for movido para a página inicial do usuário, ele poderá conter arquivos com um ctime antigo (mas, para que eles sejam mais antigos que o usuário, seu uid não teria que ser o do usuário como uma alteração O uid envolve a atualização do ctime, para que você possa pular os arquivos que não pertencem ao usuário); por outro lado, alguns eventos podem alterar o ctime de um arquivo (por exemplo, se todo o sistema foi restaurado a partir de um backup). Você pode iniciar no diretório inicial do usuário ( ls -Alctr ~bob| sed -n 2p), que pode conter arquivos /etc/skelque o usuário nunca modificou ( .bash_logouté comum) e verificar se há arquivos mais antigos find ~bob ! -cnewer ~bob/.bash_logout -user bob. Com zsh, executels -ld ~bob/**/*(Doc[1]u:bob:).

Gilles 'SO- parar de ser mau'
fonte
1
$ chage -l fred

Verifica a data de alteração da senha.

Pablo
fonte
+1: em comparação com as outras respostas, com exceção dos logs de auditoria (que não precisam estar disponíveis) e LDAP (que não se refere a uma conta local), não temos métodos confiáveis ​​para determinar a criação datas, apenas um monte de atributos para ter uma idéia. Este é um deles e, no meu sistema, acabou sendo o mais preciso (as pessoas simplesmente não mudaram senhas), embora apenas com a precisão dos dias.
user1182474
1

Para usuários locais, você pode observar a hora de nascimento do diretório inicial para os sistemas e sistemas de arquivos que a registram (Linux, a maioria dos BSDs, macOS pelo menos). Como fazer isso varia com o sistema .

Para usuários em diretórios LDAP, é possível examinar os createTimestamp(ou possivelmente whenCreated) atributos de sua entrada LDAP correspondente:

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