MOTD обновляется очень редко

Я понимаю, что pam_motd обновляет MOTD при входе в систему, но иногда MOTD просто не обновляется в течение нескольких дней, и я озадачен, в чем может быть причина. Я хотел бы добавить выходные данные uptime и who в MOTD, правильно вызывая их из сценариев /etc/update-motd.d/, но кажется совершенно бессмысленным, если пользователям показывают устаревшую информацию.

Со страницы руководства update-motd:

Executable  scripts  in  /etc/update-motd.d/* are executed by pam_motd(8) as
the root user at each login, and this information is concatenated in /var/run/motd.
The order of script execution is determined by the run-parts(8) --lsbsysinit option
(basically alphabetical order, with a few caveats).

В моем понимании, MOTD должен обновляться при каждом входе в систему. Но это не так. И я не нахожу сценарий, который вручную обновляет MOTD. Я мог бы добавить строку run-parts к cron, но я не думаю, что это правильный способ решить эту проблему, так как это похоже на взлом или обходной путь.

Моя последняя надежда состояла в том, чтобы установить /etc/pam.d/login так:

# Prints the message of the day upon succesful login.
# (Replaces the `MOTD_FILE' option in login.defs)
# This includes a dynamically generated part from /run/motd.dynamic
# and a static (admin-editable) part from /etc/motd.
#session    optional   pam_motd.so  motd=/run/motd.dynamic noupdate
session    optional   pam_motd.so  motd=/run/motd.dynamic
session    optional   pam_motd.so

Я думал, что удаление noupdate решит проблему, но это не так.

7
задан 11 January 2014 в 10:43

2 ответа

Недавно я столкнулся с той же проблемой. Вам нужно будет отредактировать /etc/pam.d/sshd, чтобы удалить или закомментировать там же обновленную информацию.

0
ответ дан 11 January 2014 в 10:43

update-motd - это простой скрипт, который выполняется:

   run-parts --lsbsysinit /etc/update-motd.d 2>/dev/null

в соответствии с run-parts manual:

   If  the  --lsbsysinit  option  is given, then the names must not end in
   .dpkg-old  or .dpkg-dist or .dpkg-new or .dpkg-tmp, and must belong  to
   one  or more of the following namespaces: the LANANA-assigned namespace
   (^[a-z0-9]+$);   the   LSB   hierarchical   and   reserved   namespaces
   (^_?([a-z0-9_.]+-)+[a-z0-9]+$);  and  the  Debian cron script namespace
   (^[a-zA-Z0-9_-]+$).

Итак, чтобы проверить, связана ли проблема с именем файла update-motd, попробуйте:

   run-parts --test --lsbsysinit /etc/update-motd.d

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

0
ответ дан 11 January 2014 в 10:43

Другие вопросы по тегам:

Похожие вопросы: