Bash .hushlogin, letzte Login-Zeit und Host behalten

19

Wenn ich mich in meinem Unternehmen bei einigen Servern anmelde, werden mein letzter Login und ein riesiger Banner angezeigt:

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$ 

Natürlich möchte ich nicht, dass dieses riesige Banner jedes Mal angezeigt wird, wenn ich mich anmelde, aber ich möchte, dass die letzte Anmeldezeit und der letzte Host angezeigt werden .

Wenn ich benutze touch ~/.hushlogin, wird das Banner nicht angezeigt, aber ich verliere auch die letzten Anmeldeinformationen . Tatsächlich wird überhaupt nichts angezeigt:

ssh the-server
me@the-server$

Wie entferne ich das Banner, behalte aber die letzte Anmeldezeit und den letzten Host wie folgt:

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

Antworten:

15

Eine Möglichkeit wäre, Folgendes hinzuzufügen ~/.ssh/rc, das Befehle enthält, die ausgeführt werden, wenn Sie in den Computer sshen:

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

Der Befehl ermittelt den Zeitpunkt Ihrer letzten Anmeldung lastloginund formatiert ihn dann so, dass er der Originalversion entspricht. Sie können jetzt touch ~/.hushloginund Sie werden immer noch diese Nachricht sehen.

terdon
quelle
1
Schön. Ich habe mich schließlich entschieden, last -w | grep "$USER" | head -n1 | perl -lane 'END{print "Last login: @F[3..6] $F[8] from $F[2]"}'weil ich lastlogmeinen Hostnamen abgeschnitten habe.
Xion345
1
@ Xion345 Anstatt für Ihren Benutzername greppen (die Sie jemand anderes mit einem längeren Benutzername , die Sie vielleicht bekommen enthält), können Sie last -w "$USER" | ...es
Monty Härtere
1
Vielleicht möchten Sie auch wissen, ob sich die Datei / etc / motd ändert, und Folgendes hinzufügen: cmp / etc / motd ~ / .hushlogin.motd || cat / etc / motd && cp / etc / motd ~ / .hushlogin.motd
rrauenza
12

Wenn Sie .bash_profileangerufen werden, haben lastlog -u "$USER"Sie etwas ganz Nahes. Die Ausgabe sieht folgendermaßen aus:

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

wo natürlich habe ich die ip adresse redigiert.

last -w -n 1 erhält einen ähnlichen Datensatz, aber aus einer anderen Datenbank.

derobert
quelle