Чи можна ставити команди в / etc / motd?


14

Чи можна помістити команди оболонки у /etc/motdфайл банера для входу? Я намагався:

 $(uptime)

і

`uptime`

Чи можливо це?

Відповіді:


15

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

Однак можливо виконати скрипт оболонки під час входу, який матиме такий же результат. Зазвичай це досягається шляхом адаптації /etc/profileсценарію, який виконується кожного разу, коли користувач входить. Корисна практика полягає в тому, щоб поставити команду, яку ви хочете виконати, в сценарій з ім'ям /etc/motd.shі викликати цей сценарій /etc/profile, як правило, приблизно в кінці його.


3
не звичайна практика використовувати /etc/motd.sh

1
@EricDANNIELOU Так, можна використовувати будь-яку назву сценарію, яку він / вона хоче. Я щойно прибрав загальний прикметник, який не підходив. Тим не менш, назвавши його таким чином, це легко помітити і знати, якій цілі він служить.
Тонін

1
Здається, існує спосіб використання cron для регулярної заміни статичного повідомлення motd: md3v.com/create-a-linux-server-status-motd Я думаю, що цей сценарій профілю здається кращим способом, менш рухомими частинами.
CMCDragonkai

5
Якщо розміщення результатів на зразок MOTD у вашому профілі, швидше за все, порушиться sftp.
Стюарт П. Бентлі

5
Ви можете розмістити 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. Звичайно, це не те саме, але я зустрічався з таким підходом іноді в минулому. Зауважте, що цей підхід також застосовувався update-motd, але його було відмовлено через проблеми, що виникли. Ви можете знайти трохи більше інформації про це тут .


1
Пов'язане askubuntu пост . Сила с sudo run-parts /etc/update-motd.d/.
Пабло А

1
Це також мінімізує відставання входу при запуску, оскільки вам не доведеться оцінювати скрипт при вході (припускаючи, що він стає складнішим, ніж uptime).
айман

0

Для серверів 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& Reload 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 для найновішої інформації.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.