Назад | Перейти на главную страницу

Можно ли помещать команды в / etc / motd?

Могу ли я поместить команды оболочки в /etc/motd файл баннера входа в систему? Я пытался:

 $(uptime)

и

`uptime`

Это возможно?

/etc/motd только читается и не выполняется, поэтому с технической точки зрения вы не можете помещать туда команды оболочки.

Однако во время входа в систему можно выполнить сценарий оболочки, который даст тот же результат. Обычно это достигается за счет адаптации /etc/profile сценарий, который выполняется каждый раз, когда пользователь входит в систему. Полезно поместить команду, которую вы хотите выполнить, в сценарий с именем /etc/motd.sh и вызовите этот скрипт из /etc/profile, обычно примерно в конце.

В Ubuntu серверов есть программа под названием update-motd из пакета libpam-modules:

Системные администраторы UNIX / Linux часто передают важную информацию консольным и удаленным пользователям, сохраняя текст в файле / etc / motd, который отображается модулем pam_motd (8) при входе в интерактивную оболочку.

Обычно это статический текстовый файл, который обычно устанавливается дистрибутивом и обновляется только при обновлении выпуска или перезаписывается локальным администратором с соответствующей информацией.

Ubuntu представила фреймворк update-motd, с помощью которого motd (5) динамически собирается из набора скриптов при входе в систему.

Эта коллекция скриптов живет под /etc/update-motd.d/. Для получения дополнительной информации см. Это страница вики.

Еще одна альтернатива генерации /etc/motd, вместо запуска сценария при входе в систему необходимо выполнить задание cron. Конечно, это не то же самое, но я иногда встречал такой подход в прошлом. Однако обратите внимание, что этот подход также использовался update-motd, но от него отказались из-за возникшей проблемы. Вы можете найти немного больше информации об этом Вот.

Для Centos 7 серверов я предлагаю использовать свой порт update-motd.d из Ubuntu.

В отличие от других решений, он заставляет динамический MOTD показывать только один раз, когда вы SSH / входите в систему через консоль (в других решениях он отображается, когда вы открываете новый screen окна, например).

Установите его с помощью:

yum install https://github.com/gdubicki/centos-pam-with-update-motd/releases/download/1.1.8-1022.3/pam-1.1.8-1022.el7.x86_64.rpm

Использовать с:

  1. Удалить статический по умолчанию /etc/motd.
  2. Сделайте так, чтобы SSHD не отображал статический MOTD с линиями PrintMotd no, Banner none, UsePAM yes (и необязательно PrintLastLog no) в твоем /etc/ssh/sshd_config & перезагрузить sshd служба.
  3. Добавьте эту строку в свой /etc/pam.d/sshd: session optional pam_motd.so motd=/run/motd.dynamic.
  4. Добавьте свои скрипты в /etc/update-motd.d, как на Ubuntu

Посмотри пожалуйста https://github.com/gdubicki/centos-pam-with-update-motd для получения самой последней информации.