Bash .hushlogin, conserve la dernière heure de connexion et l'hôte


19

Dans mon entreprise, lorsque je me connecte à certains serveurs, ma dernière connexion et une énorme bannière s'affichent:

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$ 

Bien sûr, je ne veux pas que cette énorme bannière s'affiche à chaque fois que je me connecte, mais je voudrais garder la dernière heure de connexion et l'hôte affichés .

Si j'utilise touch ~/.hushlogin, la bannière ne s'affiche pas mais je perds également les dernières informations de connexion . En fait, rien du tout n'est affiché:

ssh the-server
me@the-server$

Comment supprimer la bannière mais conserver la dernière heure de connexion et l'hôte, comme ceci:

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

Réponses:


15

Une façon serait d'ajouter ce qui suit à ~/.ssh/rc, qui contient les commandes à exécuter lorsque vous SSH dans la machine:

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

La commande obtiendra l'heure de votre dernière connexion lastlogin, puis la formatera pour qu'elle ressemble à la version d'origine. Vous pouvez maintenant touch ~/.hushloginet vous verrez toujours ce message.


1
Joli. J'ai finalement opté pour last -w | grep "$USER" | head -n1 | perl -lane 'END{print "Last login: @F[3..6] $F[8] from $F[2]"}'car lastlogje tronquais mon nom d'hôte.
Xion345

1
@ Xion345 Plutôt que de chercher votre nom d'utilisateur (qui pourrait vous procurer quelqu'un d'autre avec un nom d'utilisateur plus long qui contient le vôtre), vous pouvez l'utiliser last -w "$USER" | ...
Monty Harder

1
Vous pouvez également vouloir savoir si le fichier / etc / motd change, vous pouvez donc également ajouter: cmp / etc / motd ~ / .hushlogin.motd || cat / etc / motd && cp / etc / motd ~ / .hushlogin.motd
rrauenza

12

Votre .bash_profileappel lastlog -u "$USER"vous rapproche de quelque chose. La sortie ressemble à:

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

où bien sûr j'ai expurgé l'adresse IP.

last -w -n 1 obtient un enregistrement similaire, mais à partir d'une base de données différente.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.