Можно ли поместить команды в /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