Alguma maneira de obter as últimas vezes que a tela foi desbloqueada no macOS?

14

Ficaria imensamente grato se alguém me ajudasse a desbloquear a última tela (como ir ao menu Apple> tela de bloqueio). Com o desbloqueio, quero dizer que quando você bloqueia a tela, é necessário desbloqueá-la digitando a senha. Eu acho que isso está registrado em algum arquivo de log ou há algum comando do Terminal para obter isso.

Acho que isso deve ser possível porque, quando você usa o controle dos pais e define um limite de tempo para um usuário, se o usuário bloqueia a tela, o tempo na tela de bloqueio parece não contar no tempo permitido, o que parece implica que as telas de bloqueio estão registradas em algum arquivo de log?

A seguir, uma captura de tela de um trecho da saída do terminal após a execução do código High Sierra listado na resposta do @ JBis: insira a descrição da imagem aqui

Antonio23249
fonte

Respostas:

9

Se você acessar o aplicativo Console no seu Mac (ele está localizado na pasta Aplicativos / Utilitários) e clicar em "Dados do Macs Analytics", que aparece no lado esquerdo da janela. Este relatório tem a mensagem "loginwindow" e é marcado com um horário e tem a palavra "screenlock" na mesma linha. Eu apenas bloqueei a tela e depois a desbloquei e recebi a mensagem. Você pode preencher todos os termos "loginwindow" e "screenlock". Isso deve fornecer uma lista das vezes em que esses eventos ocorreram.

Esse registro pode ser localizado no Finder clicando com o botão direito do mouse> revelar no localizador (pelo menos no macOS High Sierra)

jmh
fonte
11
Uau! esse parece ser o único, mas parece mostrar apenas os últimos três dias, existe uma maneira de ver mais tempo de volta?
Antonio23249
Isso eu não sei. Desculpa.
jmh
O melhor que posso dizer é que minhas mensagens retornam 5 dias. Parece que é melhor pesquisar no "Lockscreen".
28418 jmh
Muito obrigado, o que devo fazer para que você receba essas coisas de recompensa? ..nunca fiz isso antes.
Antonio23249
No trabalho, precisamos obter o último uso de qualquer um dos macs que recebemos para reparo, isso pode ajudar bastante. Ser capaz de desbloquear o mac é um bom dado que o usuário estava realmente usando a máquina.
Antonio23249
14

Parece que versões diferentes do macOS usam logs diferentes para repetir isso. Descobri que nenhum deles mostra um log diferente para um "login" ou "desbloqueio" . Eu respondi a próxima melhor coisa: Como encontrar todos os logins / desbloqueios. Os seguintes comandos do terminal mostrarão a data em que um login ou desbloqueio ocorreu.


Com a ajuda desta resposta, e passando uma hora examinando os logs, descobri isso:

PS Você também pode usar a --lasttag útil para limitar a um horário específico em relação a agora. Por exemplo, --last 5mseriam apenas os últimos 5 minutos, --last 5has últimas 5 horas e --last 5dos últimos 5 dias.


macOS Mojave

Verifique se há tentativas de desbloqueio bloqueadas (senha inválida ou Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "LUIAuthenticationServiceProvider activate]_block_invoke"

Explicação: O comando examinará os logs e localizará os que são do processo "loginwindow"e os contêm LUIAuthenticationServiceProvider activate]_block_invoke.


Verifique se há tentativas válidas de desbloqueio (senha válida ou Touch ID):

 log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "LUIAuthenticationServiceProvider deactivateWithContext:]_block_invoke"

Explicação: O comando examinará os logs e localizará os que são do processo "loginwindow"e os contêm LUIAuthenticationServiceProvider deactivateWithContext:]_block_invoke.


macOS High Sierra

WIP

Verifique se há tentativas de desbloqueio bloqueadas (senha inválida ou Touch ID):

...


Verifique se há tentativas válidas de desbloqueio (senha válida ou Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "LAClient evaluatePolicy:options:uiDelegate:reply:]_block_invoke"

macOS Sierra

Verifique se há tentativas de desbloqueio bloqueadas (senha inválida ou Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "Verify password called with PAM auth set to YES, but pam handle == nil"

Verifique se há tentativas válidas de desbloqueio (senha válida ou Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "SecKeychainLogin result: 0, password was supplied"
JBis
fonte
Eu tentei os dois e eles não retornam nada. Você parece estar direcionado na direção certa. Não sou muito habilidoso com o Terminal, o que essas pesquisas, o system.log ?, não consegui encontrar nenhum "UIAuthenticationServiceProvider desativadoWithContext:] _ block_invoke" no system.log. Muito obrigado pelo seu esforço, eu realmente preciso disso.
Antonio23249
@ Antonio23249 Ver atualização.
JBis 28/07
Olá, obrigado novamente ... bem, isso não parece estar funcionando, eu tranquei e destranquei a tela às 16:42:50, reiniciei a máquina e 16:06:10, esperei alguns minutos para dar o registra tempo para recuperar o atraso. De acordo com isso, o último desbloqueio ocorreu em 2018-07-28 17: 13: 28.241846 + 0100, certo? Este é um Mac Mini 2014 no macOS High Sierra 10.13.6
Antonio23249
Bem, um login também pode acionar esse log porque ele está bem desbloqueando-o. O evento 16:42:50 apareceu? Teoricamente, deveria ser o segundo.
JBis
Adicionei uma captura de tela do resultado à minha postagem original acima (não consegui adicioná-la em nenhum outro lugar). Eu adicionei-lo novamente, primeira imagem que eu adicionei não era certo
Antonio23249
-1

Terminal aberto e tipo

last

isso deve fornecer informações de log

aqui está a página de manual deste comando:

último manual

Alexandre Babeanu
fonte
Obrigado pela sua resposta, você tem certeza de que uma mostra a tela desbloqueada? parece mostrar apenas logins reais
Antonio23249
Você está correto, @ Antonio23249. Um desbloqueio de tela não é um novo login. lastmostra apenas os últimos logins. De man last: Último listará as sessões de usuários, ttys e hosts especificados, em ordem inversa do tempo. Cada linha de saída contém o nome de usuário, o tty a partir do qual a sessão foi conduzida, qualquer nome de host, os horários de início e de término da sessão e a duração da sessão. Se a sessão ainda continuar ou foi interrompida por uma falha ou desligamento, o último será indicado.
IconDaemon
Obrigado pela sua resposta de qualquer maneira, eu comecei uma recompensa por isso. Acho que isso deve ser possível porque, quando você usa o controle dos pais e define um limite de tempo para um usuário, se o usuário bloqueia a tela, o tempo na tela de bloqueio parece não contar no tempo permitido, o que parece implica que as telas de bloqueio estão registradas em algum arquivo de log?
Antonio23249