/ etc / motd在Gentoo Linux上打印两次
题
我遇到了一个问题,我在Gentoo Linux上得到了两个/ etc / motd文件的打印输出。 sshd正在进行其中一个打印输出,我可以通过配置/ etc / ssh / sshd_config来切换它,但是我找不到谁在打印第二个副本。由于审计要求,我无法禁止sshd打印出motd。我正在运行bash shell,因为它的价值
任何打印第二份副本的想法?我不认为这是bash,因为当我更改/ etc / passwd使用/ bin / ksh作为我的shell时,我仍然会显示motd。
这不是/ etc / issue,因为它包含字符串“This is \ n(\ s \ m \ r)(\ l)”,只有当你坐在机器前面时才打印
解决方案
看起来答案在/etc/pam.d/login和/etc/pam.d/system-login文件中。我不得不注释掉pam_motd.so行。
其他提示
您是否从SSH连接登录??如果是这样,也许您必须启用并设置为否“密钥”PrintMotd No“在您的sshd_config文件上并重新启动服务...
我也遇到了这个问题,令我不安的不是双重问题,而是双重“最后登录”。第二行引用回到它上面的登录事件。
我认为这可能表明某种类型的犯规,好像我的登录被重新定向或通过某些间谍软件或其他东西进行了管理。
以下是我的/etc/pam.d/system-login的底部5行:
session required pam_env.so
#session optional pam_lastlog.so
session include system-auth
#session optional pam_motd.so motd=/etc/motd
session optional pam_mail.so
注意注释掉的行。现在一切都按预期工作了。谢谢,丹尼尔。
同时检查/ etc / issue,一些系统打印两者,它们可能只包含相同的文本。 请注意,我不使用gentoo,所以情况可能并非如此。
除了注释掉pam_motd.so行之外,不要忘记在/etc/pam.d/login和/etc/pam.d/system-login中注释掉以下行:
会话可选pam_lastlog.so
像这样,“最后一次登录”行打印一次而不是两次。
我认为确保打印MOTD的唯一组件是PAM会更有意义。这样您就可以在其他任何地方禁用它,并且仍然符合您的审核要求。
只需我0.02美元。
当我遇到这个问题时,我了解到,当系统发给我时,这是一组活动设置。在SSH身份验证发生之前打印了消息的第一个副本,这是由于在 sshd_config 中设置了SSH的 Banner
选项:
Banner /etc/motd
滥用MOTD而不是滥用 Banner
。
打印消息的第二个副本,因为在默认配置中,SSH在登录时打印MOTD。我通过设置 PrintMotd
:
PrintMotd no
我遇到了与Ubuntu 15.04相同的问题,并且SSHD配置为使用PAM身份验证。我的服务器正在发送两个MOTD。我设法通过让SSHD在每次登录时刷新MOTD来使其工作得很好。这是通过编辑/etc/pam.d/sshd并删除/注释 noupdate
的行来完成的。
# Print the message of the day upon successful login.
# 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
#session optional pam_motd.so noupdate
缺点是,如果刷新此消息的过程需要一段时间(或CPU时间)登录可能会浪费一些资源,似乎需要一段时间甚至超时。
但是,在Ubuntu 15.04中开箱即用的基本默认MOTD应该不会造成麻烦。
可能是从shell本身完成的。检查全局配置文件和bashrc以查看是否可能出现这种情况。
要仅允许pam_motd.so模块打印motd,请将/etc/login.defs中的MOTD变量设置为空字符串。
MOTD_FILE""