===== Настраиваем динамический motd в Debian GNU/Linux 10 (Buster) =====
{{:unix-linux:debian:pasted:20171124-194401.png }} После регистрации пользователя в Linux-системе, как правило, отображается так называемое "сообщение дня" - **message of the day** или сокращённо **motd**.
В **Debian GNU/Linux 10 (Buster)** это сообщение имеет малоинформативный вид.
Попробуем сделать это сообщение информативней и полезней для администратора.
Скрипт, которые будут использоваться для генерации динамического **motd** будем размещать в каталоге ''/etc/update-motd.d'', который существует в конфигурации по умолчанию в Debian Buster.
Создадим в этом каталоге файл скрипта и сделаем его исполняемым:
# touch /etc/update-motd.d/99-mymotd-generator
# chmod a+x /etc/update-motd.d/99-mymotd-generator
Отключим содержащийся по умолчанию в этом каталоге скрипт ''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 и проверим результат:
{{ :unix-linux:debian:buster:pasted:20190619-143201.png }}
Если всё сделано, а результата нет, то возможно стоит проверить настройки **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
...
----
Дополнительные источники информации:
* [[https://wiki.debian.org/motd|Debian Wiki - motd]]
----
Проверено на следующих конфигурациях:
^ Версия ОС ^
|Debian GNU/Linux Buster 10.0 |
----
{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 24.11.2017 19:33
{{tag>Linux Debian "Debian 10" "Debian Buster" motd PAM "pam_motd"}}
~~DISCUSSION~~