Bash .hushlogin, mantenga la última hora de inicio de sesión y host


19

En mi empresa, cuando inicio sesión en algunos servidores, se muestra mi último inicio de sesión y un gran banner:

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$ 

Por supuesto, no quiero que se muestre este gran banner cada vez que inicio sesión, pero me gustaría mantener la última hora de inicio de sesión y el host mostrado .

Si lo uso touch ~/.hushlogin, el banner no se muestra pero también pierdo la última información de inicio de sesión . De hecho, no se muestra nada en absoluto:

ssh the-server
me@the-server$

¿Cómo elimino el banner pero mantengo el último tiempo de inicio de sesión y el host, como este:

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

Respuestas:


15

Una forma sería agregar lo siguiente a ~/.ssh/rc, que contiene comandos para ejecutar cuando ssh en la máquina:

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

El comando obtendrá la hora de su último inicio de sesión lastloginy luego lo formateará para que se vea como la versión original. Ahora puede touch ~/.hushloginy aún verá ese mensaje.


1
Buena esa. Finalmente fui last -w | grep "$USER" | head -n1 | perl -lane 'END{print "Last login: @F[3..6] $F[8] from $F[2]"}'porque lastlogestaba truncando mi nombre de host.
Xion345

1
@ Xion345 En lugar de buscar su nombre de usuario (que podría darle a otra persona con un nombre de usuario más largo que contenga el suyo), puede usarlo last -w "$USER" | ...allí
Monty Harder,

1
También es posible que desee saber si / etc / motd cambia, por lo que también podría agregar: cmp / etc / motd ~ / .hushlogin.motd || cat / etc / motd && cp / etc / motd ~ / .hushlogin.motd
rrauenza

12

Tener su .bash_profilellamada lo lastlog -u "$USER"lleva a algo bastante cercano. La salida se ve así:

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

donde, por supuesto, redacté la dirección IP.

last -w -n 1 obtiene un registro similar, pero de una base de datos diferente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.