notes/Приветствие ssh Debian 9.md

133 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#### Изменяем приветствие консоли сервера
Изначально видим
```
Linux DNAS 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jun 10 14:15:12 2019 from 193.164.201.34
```
1) За отказ от ответственности
```
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
```
отвечает файл `/etc/motd`
для его быстрой очистки используем
```bash
sudo cp /dev/null /etc/motd
```
2) Информация о последнем подключении
```
Last login: Mon Jun 10 14:15:12 2019 from 193.164.201.34
```
Чтобы отключить сообщение о последнем входе (что я не рекомендую делать), надо отредактировать вот этот файл:
`/etc/ssh/sshd_config`
Найдите вот эту опцию и замените `yes` на `no`:
`PrintLastLog no`
Теперь, когда вы будете входить, вы этого сообщения не увидите. Из соображений безопасности всё же не рекомендую так делать.
3) Вывод данных о системе
```
Linux DNAS 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64
```
Содержится в файле `/etc/update-motd.d/10-uname`
Чтобы отключить его вывод, достаточно снять с файла права на запуск
4) Создадим свой скрипт вывода
_Можно создавать свои скрипты, которые будут отображаться при успешной авторизации. Эти скрипты хранятся по адресу `/etc/profile.d/`_
Создадим свой скрипт:
```bash
sudo nano /etc/profile.d/ssh-info.sh
```
Вставим следующий текст:
```bash
#!/bin/sh
#
# Text Color Variables http://misc.flogisoft.com/bash/tip_colors_and_formatting
tcLtG="\033[00;37m" # LIGHT GRAY
tcDkG="\033[01;30m" # DARK GRAY
tcLtR="\033[01;31m" # LIGHT RED
tcLtGRN="\033[01;32m" # LIGHT GREEN
tcLtBL="\033[01;34m" # LIGHT BLUE
tcLtP="\033[01;35m" # LIGHT PURPLE
tcLtC="\033[01;36m" # LIGHT CYAN
tcW="\033[01;37m" # WHITE
tcRESET="\033[0m"
tcORANGE="\033[38;5;209m"
#
# Время суток
HOUR=$(date +"%H")
if [ $HOUR -lt 12 -a $HOUR -ge 4 ]; then TIME="Доброе утро!"
elif [ $HOUR -lt 17 -a $HOUR -ge 12 ]; then TIME="Добрый день!"
elif [ $HOUR -lt 23 -a $HOUR -ge 17 ]; then TIME="Добрый вечер!"
else TIME="Доброй ночи!"
fi
#
# Время с момента перезагрузки
uptime=`cat /proc/uptime | cut -f1 -d.`
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
#
# System + Memory
SYS_LOADS=`cat /proc/loadavg | awk '{print $1}'`
MEMORY_USED=`free -m | grep Mem | awk '{print $3}'`
MEMORY_TOTAL=`free -m | grep Mem | awk '{print $2}'`
SWAP_USED=`free -m | grep Swap | awk '{print $3}'`
SWAP_TOTAL=`free -m | grep Swap | awk '{print $2}'`
NUM_PROCS=`ps aux | wc -l`
IPADDRESS=`hostname --all-ip-addresses`
SDA1SIZE=`df -h /dev/sda1 | grep /dev/sda1 | awk '{print $2}'`
SDA1OST=`df -h /dev/sda1 | grep /dev/sda1 | awk '{print $3}'`
SDA1MOUNT=`df -h /dev/sda1 | grep /dev/sda1 | awk '{print $6}'`
SDB1SIZE=`df -h /dev/sdb1 | grep /dev/sdb1 | awk '{print $2}'`
SDB1OST=`df -h /dev/sdb1 | grep /dev/sdb1 | awk '{print $3}'`
SDB1MOUNT=`df -h /dev/sdb1 | grep /dev/sdb1 | awk '{print $6}'`
SDC1SIZE=`df -h /dev/sdc1 | grep /dev/sdc1 | awk '{print $2}'`
SDC1OST=`df -h /dev/sdc1 | grep /dev/sdc1 | awk '{print $3}'`
SDC1MOUNT=`df -h /dev/sdc1 | grep /dev/sdc1 | awk '{print $6}'`
SDD1SIZE=`df -h /dev/sdd1 | grep /dev/sdd1 | awk '{print $2}'`
SDD1OST=`df -h /dev/sdd1 | grep /dev/sdd1 | awk '{print $3}'`
SDD1MOUNT=`df -h /dev/sdd1 | grep /dev/sdd1 | awk '{print $6}'`
#
echo -e $tcDkG "==============================================================="
echo -e $tcLtG " $TIME $tcORANGE $USER"
echo -e $tcDkG "==============================================================="
echo -e $tcLtG " * Хост :$tcW `hostname -f`"
echo -e $tcLtG " * IP Адрес :$tcW $IPADDRESS"
echo -e $tcLtG " * Версия :$tcW $(lsb_release -s -d)"
echo -e $tcLtG " * Ядро : `uname -a | awk '{print $1" "$3" "$12}'`"
echo -e $tcLtG " * Пользователи : Авторизованных пользователей - `users | wc -w`"
echo -e $tcLtG " * Время на сервере : `date +"%A, %d %B %Y г., %T"`"
echo -e $tcLtG " * Загрузка системы : $SYS_LOADS / $NUM_PROCS запущенных процессов"
echo -e $tcLtG " * Память, RAM : Исп.: $MEMORY_USED Мб / Всего: $MEMORY_TOTAL Мб"
echo -e $tcLtG " * SWAP : Исп.: $SWAP_USED Мб / Всего: $SWAP_TOTAL Мб"
echo -e $tcLtG " * После включения : $upDays дней $upHours часов $upMins минут"
echo -e $tcDkG "==============================================================="
echo -e $tcLtG " * Диски : sda1 $SDA1OST / $SDA1SIZE | sdb1 $SDB1OST / $SDB1SIZE"
echo -e $tcLtG " Исп. / Всего : sdc1 $SDC1OST / $SDC1SIZE | sdd1 $SDD1OST / $SDD1SIZE"
echo -e $tcDkG "==============================================================="
echo -e $tcRESET ""
#
```
Делаем файл исполняемым
```bash
sudo chmod +x /etc/profile.d/ssh-info.sh
```
После перезагрузки видим, что-то типа:
![Пример приветствия](images/greeting.png)
5) Информация о доступных обновлениях
В Ubuntu за это отвечает пакет `update-notifier`, но в Debian он считается устаревшим и исключен из репозиториев
Пока решение не найдено