O PAM gera essa linha de texto devido à seguinte linha de configuração em /etc/pam.d/login
# Prints the last login info upon succesful login
# (Replaces the 'LASTLOG_ENAB' option from login.defs)
session optional pam_lastlog.so
Existem algumas opções de configuração que você pode passar para esse módulo pam, mas não vejo nada sobre a resolução de nomes de host. / var / log / lastlog é onde as informações que você está vendo são armazenadas e esse arquivo armazena endereços IP, não nomes de host. Isso faz sentido do ponto de vista de segurança, eu acho. Eu verifiquei alguns dos códigos-fonte também ... Eu não consegui encontrar nada óbvio sobre a resolução de endereços IP (pelo menos não em pam_lastlog.c). Talvez esteja escondido em outro lugar e eu perdi isso.
Este script perl usará lastlog para imprimir as últimas informações de login do usuário atual e resolverá endereços IPv4 em nomes de host
Você pode adicioná-lo ao seu /etc/profile ou /etc/bash.bashrc ou abaixo de /etc/update-motd.d/ , etc ... para obter o mesmo efeito. Não está perfeitamente formatado, então você pode precisar mexer com isso para fazer com que pareça do jeito que você quer.
#!/usr/bin/perl
use warnings;
use Socket;
open(my $lastLogOut,"lastlog -u $ENV{LOGNAME} |");
while(my $entry = ) {
chomp($entry);
my $ipAddress;
my $hostname;
if($entry =~ /(\d+\.\d+\.\d+\.\d+)/) {
$ipAddress = $&;
if($hostname = gethostbyaddr(inet_aton($ipAddress), AF_INET)) {
$entry =~ s/$ipAddress/$hostname/g;
}
}
print $entry."\n";
}
Exemplo de saída
$ perl lastlog.dns
Username Port From Latest
ryan pts/5 localhost Mon Jul 18 22:26:28 -0400 2016
Se você quiser usar o script acima durante o login , poderá impedir que o PAM imprima as últimas informações de login. Anexe silent à linha pam_lastlog em /etc/pam.d/login .
session optional pam_lastlog.so silent