Использование motd в Ubuntu

В Unix-подобных системах  есть замечательный сервис — MOTD (message of the day). Он умеет показывать различные сообщения при входе пользователя в систему. Но возможности этого сервиса не ограничиваются только выводом статических сообщений. В этой статье мы увидим, что еще интересного можно получить от этого сервиса и, что полезного можно к нему добавить.

Чем сам по себе полезен MOTD? Вы можете просто показывать на экране сообщение типа «Не влезай — убью» или же, с маленькими доработками, можно заставить MOTD собирать какую либо информацию о состоянии Вашей системы непосредственно на тот момент когда Вы зарегистрировались в ней. Что это может быть за информация? Почти все, что угодно — имя сервера, к которому Вы подключились, сведения о файловой системе (сколько всего доступно места, сколько занято, сколько свободно….), статистика сетевых подключений …. и это только первое, что приходит на ум 😉

Принцип работы MOTD весьма прост. В Ubuntu до 10-й версии MOTD генерировался с помощью crontab. С 10-й версии генерацию motd перенесли в модули PAM, которые выполняются непосредственно в момент входа в систему. Задействуется этот функционал строкой в файле /etc/pam.d/login: «session    optional   pam_motd.so».

И как эту полезность заполучить — спросите Вы.  А весьма просто. Приступим!

В /etc есть папка /etc/update-motd.d. В нее Вам и нужно помещать свои скрипты, которые должны выполняться при входе пользователя в систему. Обратите внимание на имена файлов, хранящихся в /etc/update-motd.d — они начинаются с двух цифр. Эти цифры определяют порядок запуска скриптов.

Теперь немного практики. Вот так выглядит стандартное окно входа в консоль

 

 

А вот как мы можем дополнить стандартный вывод консоли

 

Для избежания проблем для начала снимаем атрибут выполнения с оригинального файла 00-header

chmod -x 00-header

и создаем свой файл 00-myheader

touch /etc/update-motd.d/00-myheader

Все изменения вносились в файл /etc/update-motd.d/00-myheader. Далее текст скрипта:

#!/bin/bash
hn=`hostname`
echo "       ======================================="
echo "                Welcome to "$hn
echo "       ======================================="
btime=`who -b | sed -e 's/[^A-Z]*//'`
utime=`uptime | sed -e 's/ [0-9:]* up />/' -e 's/,.*//'`
echo "   ==== BOOT TIME ====           ==== UPTIME ===="
echo "        "$btime"                   "$utime
echo "===================== DISK USAGE ======================"
df -h
echo "================== HTTP CONNECTIONS ==================="
netstat -an|grep ":80 "|wc -l
echo "===================== IP ADDRESSES ===================="
ifconfig |grep "inet addr"|grep -v 127.0.0.1|awk {' print $2'}|awk -F : {' print $2'}

Дабы не выполнялись лишние скрипты из папки /etc/update-motd.d/, предлагаю снимать атрибут «исполняемый» с о всех файлов, кроме тех, которые должны выполняться. Например так

chmod -R -x /etc/update-motd.d/*
потом добавить право выполнения нужному скрипту
chmod +x /etc/update-motd.d/00-myheader
Выключается MOTD путем комментирования строчки «session optional pam_motd.so» в файлах  /etc/pam.d/login и
/etc/pam.d/sshd.

 

echo "----------------------------------------------------------ророро

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *