Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
После регистрации пользователя в Linux-системе, как правило, отображается так называемое «сообщение дня» - message of the day или сокращённо motd.
В Debian GNU/Linux 10 (Buster) это сообщение имеет малоинформативный вид.
Попробуем сделать это сообщение информативней и полезней для администратора. Скрипт, которые будут использоваться для генерации динамического motd будем размещать в каталоге /etc/update-motd.d, который существует в конфигурации по умолчанию в Debian Buster.
/etc/update-motd.d
Создадим в этом каталоге файл скрипта и сделаем его исполняемым:
# touch /etc/update-motd.d/99-mymotd-generator # chmod a+x /etc/update-motd.d/99-mymotd-generator
Отключим содержащийся по умолчанию в этом каталоге скрипт 10-uname, сняв с него признак исполняемого
10-uname
# chmod a-x /etc/update-motd.d/10-uname
Отредактируем наш скрипт:
# nano /etc/update-motd.d/99-mymotd-generator
Наполним файл скрипта содержимым «по вкусу». Мой пример будет выглядеть следующим образом:
#!/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" # # Time of day HOUR=$(date +"%H") if [ $HOUR -lt 12 -a $HOUR -ge 0 ]; then TIME="morning" elif [ $HOUR -lt 17 -a $HOUR -ge 12 ]; then TIME="afternoon" else TIME="evening" fi # # System uptime 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 -b | grep Mem | awk '{print $3/$2 * 100.0}'` SWAP_USED=`free -b | grep Swap | awk '{print $3/$2 * 100.0}'` NUM_PROCS=`ps aux | wc -l` IPADDRESS=`hostname --all-ip-addresses` # echo $tcDkG "=================================================================" echo $tcLtG " Good $TIME ! $tcORANGE IT Dept Ltd." echo $tcDkG "=================================================================" echo $tcLtG " - Hostname :$tcW `hostname -f`" echo $tcLtG " - IP Address :$tcW $IPADDRESS" echo $tcLtG " - Release :$tcW $(lsb_release -s -d)[$(cat /etc/debian_version)]" echo $tcLtG " - Kernel : `uname -a | awk '{print $1" "$3" "$12}'`" echo $tcLtG " - Users : Currently `users | wc -w` user(s) logged on" echo $tcLtG " - Server Time : `date`" echo $tcLtG " - System load : $SYS_LOADS / $NUM_PROCS processes running" echo $tcLtG " - Memory used % : $MEMORY_USED" echo $tcLtG " - Swap used % : $SWAP_USED" echo $tcLtG " - System uptime : $upDays days $upHours hours $upMins minutes" echo $tcDkG "=================================================================" echo $tcRESET "" #
Сохраним скрипт, удалим статический motd-файл и вместо него создадим символическую ссылку на файл /var/run/motd, который будет обновляться при каждом входе в систему нами скриптом.
# rm -f /etc/motd # ln -sf /var/run/motd /etc/motd
После проделанных изменений войдём в систему локально или через SSH и проверим результат:
Если всё сделано, а результата нет, то возможно стоит проверить настройки PAM.
За вызов механизма обновления motd при входе в систему отвечают настройки в файлах политик PAM. Например в файле nano /etc/pam.d/sshd за это отвечают 2 строчки вызова библиотеки pam_motd.so
... session optional pam_motd.so motd=/run/motd.dynamic session optional pam_motd.so noupdate ...
Дополнительные источники информации:
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 24.11.2017 19:33