Bash .hushlogin, сохранить время последнего входа и хост


19

В моей компании, когда я захожу на несколько серверов, отображается мой последний логин и огромный баннер:

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$ 

Конечно, я не хочу, чтобы этот огромный баннер отображался при каждом входе в систему, но я хотел бы сохранить время последнего входа в систему и показ хоста .

Если я использую 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$

Ответы:


15

Одним из способов было бы добавить следующее ~/.ssh/rc, содержащее команды, которые будут запускаться при входе ssh в компьютер:

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

Команда получит время вашего последнего входа в систему, lastloginа затем отформатирует его так, чтобы оно выглядело как оригинальная версия. Теперь touch ~/.hushloginвы можете, и вы все равно увидите это сообщение.


1
Хороший. Я наконец пошел, last -w | grep "$USER" | head -n1 | perl -lane 'END{print "Last login: @F[3..6] $F[8] from $F[2]"}'потому что lastlogсокращал мое имя хоста.
Xion345

1
@ Xion345 Вместо того, чтобы искать ваше имя пользователя (которое может получить кого-то другого с более длинным именем, которое содержит ваше имя), вы можете использовать его last -w "$USER" | ...там
Монти Хардер

1
Вы также можете узнать, изменился ли файл / etc / motd, поэтому также можете добавить: cmp / etc / motd ~ / .hushlogin.motd || кошка / etc / motd && cp / etc / motd ~ / .hushlogin.motd
rrauenza

12

Принимая ваш .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 получает аналогичную запись, но из другой базы данных.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.