![在 14.04 中,motd 中的软件包/重启警告需要额外登录才能显示](https://linux22.com/image/1126686/%E5%9C%A8%2014.04%20%E4%B8%AD%EF%BC%8Cmotd%20%E4%B8%AD%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%2F%E9%87%8D%E5%90%AF%E8%AD%A6%E5%91%8A%E9%9C%80%E8%A6%81%E9%A2%9D%E5%A4%96%E7%99%BB%E5%BD%95%E6%89%8D%E8%83%BD%E6%98%BE%E7%A4%BA.png)
注意:这不是一个新问题并且已经存在了一段时间。
如果您在有新更新可用时或安装更新后通过 SSH 登录,则 MOTD 不会反映您所做的最后更改……除非您注销然后重新登录。
我今天早上以无权sudo
访问的用户身份登录,并在 MOTD 中看到了以下内容:
8 packages can be updated.
6 updates are security updates.
因此,我打开了第二个 SSH 会话并以具有访问权限的用户身份登录sudo
,并在 MOTD 中看到了以下内容:
16 packages can be updated.
14 updates are security updates.
我安装了这些更新,并且专门测试这个在另一个终端上注销我的非 sudo 用户,然后重新登录,该终端在 MOTD 中显示了此信息
16 packages can be updated.
14 updates are security updates.
我注销了该用户并重新登录,并在 MOTD 中看到了以下内容:
0 packages can be updated.
0 updates are security updates.
*** System restart required ***
是否存在某些缓存或我需要禁用某些设置才能使其正确更新?
答案1
这归档为错误 1368864在 Ubuntu 的跟踪器中。
此修复需要修改一对文件:
第一个是/etc/pam.d/login
找到以下几行:
session optional pam_motd.so motd=/run/motd.dynamic noupdate
session optional pam_motd.so
并将其更改为:
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
接下来,打开/etc/pam.d/sshd
找到以下几行:
session optional pam_motd.so motd=/run/motd.dynamic noupdate
session optional pam_motd.so # [1]
并将其更改为:
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate # [1]
您需要修改这两个文件的原因是,如果您仅更改login
,那么通过 SSH 进行的任何登录都将无法在第一次登录时显示系统信息。