私の会社では、いくつかのサーバーにログインすると、最後のログインと巨大なバナーが表示されます。
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 *
* [email protected] *
************************************************************************
me@the-server$
もちろん、ログインするたびにこの巨大なバナーを表示したくありませんが、最後にログインした時刻とホストを表示したままにするにしたいと思います。
touch ~/.hushlogin
を使用すると、バナーは表示されませんが、最後のログイン情報も失われます。実際、何も表示されません。
ssh the-server
me@the-server$
次のように、バナーを削除して、最後のログイン時刻とホストを保持するにはどうすればよいですか。
ssh the-server
Last login: Mon Feb 8 18:54:36 2016 from my-laptop.company.com
me@the-server$
1つの方法は、~/.ssh/rc
に以下を追加することです。これには、マシンにsshしたときに実行されるコマンドが含まれています。
lastlog -u $USER | Perl -lane 'END{print "Last login: @F[3..6] $F[8] from $F[2]"}'
このコマンドは、最後のログインの時刻をlastlogin
から取得し、元のバージョンのようにフォーマットします。これでtouch ~/.hushlogin
を実行できますが、そのメッセージは引き続き表示されます。
.bash_profile
呼び出しlastlog -u "$USER"
は、かなり近いものを取得します。出力は次のようになります。
Username Port From Latest
anthony pts/7 192.168.XX.YY Sun Feb 7 16:00:40 -0500 2016
もちろん、IPアドレスを編集しました。
last -w -n 1
は同様のレコードを取得しますが、別のデータベースから取得します。