Bash .hushlogin, mantenha o último horário de login e host


19

Na minha empresa, quando eu entro em alguns servidores, meu último login e um banner enorme são exibidos:

me@my-laptop$ ssh the-server
Last login: Mon Feb  8 18:54:36 2016 from my-laptop.company.com 
************************************************************************
*                                                                      *
*       C O M P A N Y    I N F O R M A T I O N   S Y S T E M S         *
*                                                                      *
* !WARNING!         Your connection has been logged          !WARNING! *
*                                                                      *
* This system is for the use of authorized personnel only.             *
* Individuals using this *computer system without authorization,       *
* or in excess of their authority as determined by the Company         *
* Code of Ethics and  Acceptable Use Policy, are subject to having all *
* of their activities on this system monitored, recorded and/or        *
* terminated by system personnel.                                      *
* If such monitoring reveals possible evidence of criminal  activity,  *
* Company may provide said evidence to law enforcement officials,      *
* in compliance with its confidentiality obligations and all           *
* applicable national laws/regulations with regards to data privacy.   *
*                                                                      *
*      This device is maintained by Company Department                 *
*                  admin@company.com                                   *
************************************************************************
me@the-server$ 

Obviamente, não quero que esse banner enorme seja exibido toda vez que eu fizer login, mas gostaria de manter o último horário e host de login exibidos .

Se eu usar touch ~/.hushlogin, o banner não será exibido, mas também perderei as últimas informações de login . De fato, nada é exibido:

ssh the-server
me@the-server$

Como removo o banner, mas mantenho o último horário e host do login, desta forma:

 ssh the-server
 Last login: Mon Feb  8 18:54:36 2016 from my-laptop.company.com
 me@the-server$

Respostas:


15

Uma maneira seria adicionar o seguinte a ~/.ssh/rc, que contém comandos a serem executados quando você ssh na máquina:

lastlog -u $USER | perl -lane 'END{print "Last login: @F[3..6] $F[8] from $F[2]"}'

O comando obterá a hora do seu último login lastlogine, em seguida, formatará para que pareça com a versão original. Você pode agora touch ~/.hushlogine ainda verá essa mensagem.


11
Agradável. Eu finalmente fui last -w | grep "$USER" | head -n1 | perl -lane 'END{print "Last login: @F[3..6] $F[8] from $F[2]"}'porque lastlogestava truncando meu nome de host.
Xion345

11
@ Xion345 Ao invés de grepping para o seu nome de usuário (que pode chegar alguém com um nome de usuário já que contém o seu), você pode usar last -w "$USER" | ...
Monty Mais difícil

11
Você também pode querer saber se o / etc / motd muda, portanto, você também pode adicionar: cmp / etc / motd ~ / .hushlogin.motd || / etc / motd && cp / etc / motd ~ / .hushlogin.motd
rrauenza

12

Receber sua .bash_profileligação lastlog -u "$USER"leva você a algo bem próximo. A saída se parece com:

Username         Port     From             Latest
anthony          pts/7    192.168.XX.YY    Sun Feb  7 16:00:40 -0500 2016

onde, é claro, redigi o endereço IP.

last -w -n 1 obtém um registro semelhante, mas de um banco de dados diferente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.