Можно ли поместить команды в /etc/motd?
Могу ли я поместить команды оболочки в /etc/motd файл баннера для входа? Я пытался:
$(uptime)
а также
`uptime`
Это возможно?
5 ответов
/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. Конечно, это не то же самое, но я встречал этот подход иногда в прошлом.
Да, это возможно... Сорта.
Посмотрите на создание динамического 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
Использовать с:
- Удалить статический по умолчанию
/etc/motd. - Сделайте так, чтобы SSHD не отображал статический MOTD с линиями
PrintMotd no,Banner none,UsePAM yes(и необязательноPrintLastLog no) в вашем/etc/ssh/sshd_config& перезагрузитьsshdслужба. - Добавьте эту строку в свой
/etc/pam.d/sshd:session optional pam_motd.so motd=/run/motd.dynamic. - Добавьте свои скрипты в
/etc/update-motd.d, как на Ubuntu
Пожалуйста, посетите https://github.com/gdubicki/centos-pam-with-update-motd для получения самой последней информации.
Не уверен, что это одинаково во всех дистрибутивах, но в Arch Linux/etc/profileфайл уже будет содержать некоторый контент, который вы обычно не хотите трогать. Но вы можете создать новый файл в/etc/profile.d/папку и заполните ее скриптом, который хотите выполнить.
Например:
содержание/etc/profile.d/motd.sh:
echo "Hello, we have the date and time: $(date)"
который выводит этот текст при входе в систему:
Hello, we have the date and time: Tue Apr 4 00:53:11 CEST 2023