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