diff --git a/images/greeting_12.png b/images/greeting_12.png new file mode 100644 index 0000000..3e477fa Binary files /dev/null and b/images/greeting_12.png differ diff --git a/Приветствие ssh Debian 12.md b/Приветствие ssh Debian 12.md new file mode 100644 index 0000000..23402a4 --- /dev/null +++ b/Приветствие ssh Debian 12.md @@ -0,0 +1,150 @@ +# Приветствие консоли сервера + +Изначально видим + +```shell +Linux test 6.1.0-23-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.99-1 (2024-07-15) 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: Fri Jun 27 12:51:16 2025 from 192.168.13.110 +``` + +## За отказ от ответственности + +```shell +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` +для его быстрой очистки используем + +```shell +sudo :> /etc/motd +``` + +## Информация о последнем подключении + +```shell +Last login: Fri Jun 27 12:51:16 2025 from 192.168.13.110 +``` + +Чтобы отключить сообщение о последнем входе (что не рекомендуется), надо отредактировать `/etc/ssh/sshd_config` +заменить `yes` на `no`: `PrintLastLog no` + +## Вывод данных о системе + +```shell +Linux bastion 6.12.25+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 +``` + +Содержится в файле `/etc/update-motd.d/10-uname` +Чтобы отключить его вывод, достаточно снять с файла права на запуск + +## Свой скрипт вывода + +_Можно создавать свои скрипты, которые будут отображаться при успешной авторизации. Эти скрипты хранятся по адресу `/etc/update-motd.d`_ + +```shell +sudo vim /etc/update-motd.d/11-custom +``` + +```shell +#!/bin/sh + +# Text Color Variables http://misc.flogisoft.com/bash/tip_colors_and_formatting +COLOR_LIGHT_GRAY="\033[00;37m" +COLOR_DARK_GRAY="\033[01;30m" +COLOR_LIGHT_RED="\033[01;31m" +COLOR_LIGHT_GREEN="\033[01;32m" +COLOR_LIGHT_BLUE="\033[01;34m" +COLOR_LIGHT_PURPLE="\033[01;35m" +COLOR_LIGHT_CYAN="\033[01;36m" +COLOR_WHITE="\033[01;37m" +COLOR_RESET="\033[0m" +COLOR_ORANGE="\033[38;5;209m" + +# Функция для определения времени суток +get_time_greeting() { + local hour=$(date +"%H") + if [ $hour -lt 12 -a $hour -ge 4 ]; then + echo "Доброе утро!" + elif [ $hour -lt 17 -a $hour -ge 12 ]; then + echo "Добрый день!" + elif [ $hour -lt 23 -a $hour -ge 17 ]; then + echo "Добрый вечер!" + else + echo "Доброй ночи!" + fi +} + +# Получить время работы системы +get_uptime() { + local uptime_seconds=$(cat /proc/uptime | cut -f1 -d.) + local days=$((uptime_seconds/60/60/24)) + local hours=$((uptime_seconds/60/60%24)) + local minutes=$((uptime_seconds/60%60)) + echo "$days дней $hours часов $minutes минут" +} + +# Получить информацию о системе +get_system_info() { + # Загрузка системы + local load_average=$(cat /proc/loadavg | awk '{print $1}') + local process_count=$(ps aux | wc -l) + + # Сетевые данные + local ip_address=$(hostname --all-ip-addresses) + + # Вывод информации + printf "%b\n" "$COLOR_DARK_GRAY================================================================================$COLOR_RESET" + printf "%b %-80s %b%s%b\n" "$COLOR_LIGHT_GRAY" "$(get_time_greeting)" "$COLOR_ORANGE" "$(logname)" "$COLOR_RESET" + printf "%b\n" "$COLOR_DARK_GRAY================================================================================$COLOR_RESET" + + printf "%b * Хост :%b %-50s%b\n" "$COLOR_LIGHT_GRAY" "$COLOR_WHITE" "$(hostname -f)" "$COLOR_RESET" + printf "%b * IP Адрес :%b %-50s%b\n" "$COLOR_LIGHT_GRAY" "$COLOR_WHITE" "$ip_address" "$COLOR_RESET" + printf "%b * Версия :%b %-50s%b\n" "$COLOR_LIGHT_GRAY" "$COLOR_WHITE" "$(lsb_release -s -d)" "$COLOR_RESET" + printf "%b * Ядро : %-50s%b\n" "$COLOR_LIGHT_GRAY" "$(uname -a | awk '{print $1" "$3" "$12}')" "$COLOR_RESET" + printf "%b * Пользователи : Авторизованных пользователей - %-30s%b\n" "$COLOR_LIGHT_GRAY" "$(users | wc -w)" "$COLOR_RESET" + printf "%b * Время на сервере : %-50s%b\n" "$COLOR_LIGHT_GRAY" "$(date +"%A, %d %B %Y г., %T")" "$COLOR_RESET" + printf "%b * Загрузка системы : %-50s%b\n" "$COLOR_LIGHT_GRAY" "$load_average / $process_count запущенных процессов" "$COLOR_RESET" + printf "%b * Память, RAM : Исп.: %-4s Мб / Всего: %-4s Мб%b\n" "$COLOR_LIGHT_GRAY" "$memory_used" "$memory_total" "$COLOR_RESET" + printf "%b * SWAP : Исп.: %-4s Мб / Всего: %-4s Мб%b\n" "$COLOR_LIGHT_GRAY" "$swap_used" "$swap_total" "$COLOR_RESET" + printf "%b * После включения : %-50s%b\n" "$COLOR_LIGHT_GRAY" "$(get_uptime)" "$COLOR_RESET" + printf "%b\n" "$COLOR_DARK_GRAY================================================================================$COLOR_RESET" + printf "%b * Диски:%b\n" "$COLOR_LIGHT_GRAY" "$COLOR_RESET" + df -h | awk 'NR==1 || ($1 ~ /^\/dev\// && $6 !~ /^\/run|\/dev|\/sys|\/proc|\/snap/)' | sed "s/^/ /" + printf "%b\n" "$COLOR_DARK_GRAY================================================================================$COLOR_RESET" + printf "%b * ОЗУ:%b\n" "$COLOR_LIGHT_GRAY" "$COLOR_RESET" + free -h + printf "%b\n" "$COLOR_DARK_GRAY================================================================================$COLOR_RESET" + printf "%b\n" "$COLOR_RESET" +} + +# Основной вызов +get_system_info +``` + +Делаем файл исполняемым + +```shell +sudo chmod +x /etc/update-motd.d/11-custom +``` + +Для проверки работы + +```shell +run-parts /etc/update-motd.d/ +``` + +После перезагрузки видим, что-то типа: +![Пример приветствия](images/greeting_12.png)