Вопрос или проблема
Какой самый чистый способ отображения другой цитаты из файла (разделённой строками) в качестве MOTD при каждом входе в систему SSH на Debian?
Другими словами, как можно вызвать обновление MOTD при входе в SSH?
Правильный способ сделать это не в .profile или .bashrc, а в MOTD
Когда вы входите в систему, модуль pam_motd PAM напечатает сообщение дня.
-
создайте каталог
/etc/update-motd.d
-
создайте скрипт
/etc/update-motd.d/00name
с таким содержаниемecho; echo `shuf -n 1 quotes.txt`
MOTD для вас теперь будет состоять из /etc/motd
, если он существует, объединённого с вашей случайной строкой /etc/motd.dynamic
.
Смотрите подробности здесь:
https://ownyourbits.com/2017/04/05/customize-your-motd-login-message-in-debian-and-ubuntu/
Наиболее распространённый метод – использовать fortune
из /etc/.profile. Однако этот файл предполагает, что цитаты должны содержать разрывы строк и разделяться строкой, содержащей только символ %
.
Чтобы преобразовать ваш файл с цитатами в правильный формат файла fortune:
sed -e s/$/"\n"%/ /path/to/quote/file > /path/to/quote/fortune
strfile /path/to/quote/fortune /path/to/quote/fortune.dat
Проверьте, что это работает, запустив
fortune /path/to/quote/
Добавить в /etc/profile
:
fortune /path/to/fortune
Отвечаю на свой вопрос, потому что нашёл способ сделать это и забыл об этом вопросе.
Что я сделал:
Создал файл под названием ssh_login_quote.sh
в домашней папке моего пользователя:
#!/bin/bash
echo `shuf -n 1 quotes.txt`
(Не забудьте сделать chmod +x ssh_login_quote.sh
)
Затем создал файл в той же директории под названием quotes.txt
с одной цитатой на строку.
В ~/.profile
я добавил ~/./ssh_login_quote.sh
в конец файла.
exit
и ssh
обратно (или заново откройте терминал), и вы увидите вашу случайную цитату!
.
Ответ или решение
Обновление сообщения дня (Message of the Day, MOTD) при входе через SSH на Debian может быть полезной методикой для предоставления пользователям динамической информации или просто приветственных сообщений. Такая настройка позволяет сделать процесс входа более информативным или приятным. Давайте рассмотрим, как можно реализовать изменение MOTD для отображения случайной цитаты из файла при каждом входе.
Теория (Theory)
На системах Debian отображение сообщения дня управляется модулем PAM (Pluggable Authentication Modules) под названием pam_motd. Этот модуль отвечает за вывод сообщений, которые находятся в файле /etc/motd
, а также может быть настроен на выполнение скриптов из директории /etc/update-motd.d/
. Таким образом, использование этой директории позволяет динамически изменять MOTD.
Существует несколько подходов к решению задачи последовательного отображения случайных цитат при входе. Один из них включает использование команды shuf
для случайного выбора строки из заранее подготовленного файла с цитатами. Другой подход заключается в использовании утилиты fortune
, которая, однако, требует определенного форматирования файла с цитатами.
Пример (Example)
-
Создание каталога и скрипта
Начнем с создания каталога
/etc/update-motd.d
, если он еще не существует. Это можно сделать с помощью следующей команды:sudo mkdir -p /etc/update-motd.d
Затем создадим скрипт, который будет выбирать и отображать случайную цитату из файла. Создайте файл
/etc/update-motd.d/00-random-quote
и добавьте в него следующее содержимое:#!/bin/bash echo echo $(shuf -n 1 /path/to/quotes.txt)
Обратите внимание, что необходимо заменить
/path/to/quotes.txt
на фактический путь к вашему файлу с цитатами. -
Настройка прав доступа
Сделайте скрипт исполняемым с помощью следующей команды:
sudo chmod +x /etc/update-motd.d/00-random-quote
-
Подготовка файла с цитатами
Создайте текстовый файл с цитатами, где каждая цитата находится на отдельной строке. Этот файл может быть размещен в любом удобном вам месте — в домашней директории или в другом каталоге с доступом для чтения. Например:
"И единственное, что останется, — это твои дела." — Марк Аврелий "Начни с малого, но мечтай о большем." — Конфуций "Слова мудреца полны тишины." — Лао-цзы
-
Поддержка выводов для SSH
Когда пользователь выполняет вход через SSH, система выполнит скрипт в
/etc/update-motd.d/
, что приведет к появлению выбранной случайно цитаты в MOTD.
Применение (Application)
Этот подход позволит вам персонализировать и разнообразить процесс входа на сервер. Это может быть полезным как для улучшения пользовательского опыта, так и для распространения важной информации среди команды. Например, вы можете использовать эту возможность для отображения мотивационных цитат, напоминаний о правилах безопасности или даже текущих задач.
Настройка и выбор контента MOTD может стать частью корпоративной культуры, особенно если сервер используется несколькими пользователями. Это также способствует информированию и поддержанию сплоченности в команде.
Кроме того, использование скриптов в /etc/update-motd.d
позволяет сделать MOTD динамическим, основанным на определенных условиях, таких как время дня или статус системы, что может быть полезно для администраторов систем.
Таким образом, вы можете не только улучшить процесс приветствия, но и использовать эту механизацию в целях администрирования и поддержки командной культуры.