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

13

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

 $(uptime)

и

`uptime`

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

Джастин
источник

Ответы:

15

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

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

Tonin
источник
3
использование /etc/motd.sh не является обычной практикой
1
@EricDANNIELOU Да, можно использовать любое имя сценария, которое он / она хочет. Я просто удалил общее прилагательное, которое не подходит. Тем не менее, назвав его таким образом, легко определить и понять, для чего он служит.
Тонин
1
Кажется, есть способ использовать cron для регулярной замены статического сообщения motd: md3v.com/create-a-linux-server-status-motd Я думаю, что этот скрипт профиля кажется лучшим способом, с меньшим количеством движущихся частей.
CMCDragonkai
4
Размещение вывода как MOTD в вашем профиле, вероятно, сломает sftp.
Стюарт П. Бентли
4
Вы можете разместить motd.shскрипт внутри /etc/profile.d/с разрешениями 755. Таким образом, вам не нужно будет звонить /etc/profile.
Итай Грудев
8

На серверах Ubuntu есть программа, которая вызывается update-motdиз пакета libpam-modules:

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

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

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

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

Другой альтернативой генерации /etc/motd, вместо запуска сценария при входе в систему, является создание задания cron. Конечно, это не то же самое, но я встречал этот подход иногда в прошлом.

Wtower
источник
1
Связанный пост Askubuntu . Сила с sudo run-parts /etc/update-motd.d/.
Пабло А
1
Это также минимизирует отставание при входе в систему, так как вам не нужно оценивать скрипт при входе в систему (если он становится более сложным, чем uptime).
Айман