MOTD 很少更新

MOTD 很少更新

我知道pam_motd登录后会更新 MOTD,但有时 MOTD 几天都没有更新,我不知道原因是什么。我想将输出添加到 MOTD,并uptimewho脚本中正确调用它们/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就可以解决问题,但事实并非如此。

答案1

我最近也遇到了同样的问题。您需要编辑/etc/pam.d/sshd以删除或注释掉那里的 noupdate。

答案2

update-motd是运行以下简单脚本:

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

根据运行部件手动的:

   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

此命令打印将要运行的脚本的名称,但实际上并不运行它们。

相关内容