GNU / Linux, Fedora 17, mensagem de login

0

Existe um programa que exibe a mensagem de login formatada assim:

Last login: Wed Oct 24 16:40:33 2012

Ou eu tenho que escrever meu próprio programa / script? Eu queria saber se existe um comando que o kernel do Linux (ou quem quer que seja) execute para fazer isso.

    
por BenjiWiebe 27.10.2012 / 21:59

2 respostas

0

Eu escrevi um código para fazer isso por mim:

LINE='lastlog -u $USER | head -n2 | tail -n1';
WORDS='echo "$LINE" | wc -w';
if [ "x$WORDS" = "x9" ]; then
  echo "$LINE" | awk '{ printf "Last login: %s %s  %s %s %s from %s\n", $4, $5, $6, $7, $9, $3 }';
else
  echo "Unsupported case.";
fi;

Ele não funciona para logins não remotos, mas eu estou executando o código em um servidor sem cabeçalho, então 99,9% dos logins serão logins remotos; o outro 0,1% será quando eu "anexar uma cabeça" para corrigir problemas ssh ou similar.

    
por 20.12.2012 / 21:51
2

O kernel não rastreia as informações de login. Você pode configurar o PAM ( /etc/pam.d ) para chamar o módulo pam_lastlog.so , que mostra exatamente o que você quer:

session optional pam_lastlog.so noterm nohost

Ou um pouco mais detalhado:

session optional pam_lastlog.so

Ou um que também imprima logins com falha:

session optional pam_lastlog.so showfailed

No Fedora, pode ir para /etc/pam.d/system-login ou /etc/pam.d/gdm-password , não tenho certeza.

As informações são armazenadas em /var/log/wtmp e /var/log/lastlog .

    
por 27.10.2012 / 22:14

Tags