我遇到了一个问题,我在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)”,只有当你坐在机器前面时才打印。< / p>
答案 0 :(得分:8)
看起来答案在/etc/pam.d/login和/etc/pam.d/system-login文件中。我不得不注释掉pam_motd.so行。
答案 1 :(得分:3)
您是否从SSH连接登录?如果是这样,也许您必须在sshd_config文件中启用并设置为“PrintMotd No”键并重新启动服务...
答案 2 :(得分:3)
我也遇到了这个问题,令我感到困扰的不是双重问题,而是双重的“最后登录”行,第二行引用回到它上面的登录事件。
我认为这可能表明某种类型的犯规,好像我的登录被重新定向或通过某些间谍软件或其他东西进行了管理。
以下是我的/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
注意注释掉的行。现在一切都按预期工作了。谢谢,丹尼尔。
答案 3 :(得分:1)
同时检查/ etc / issue,一些系统打印两者,它们可能只包含相同的文本。 请注意,我不使用gentoo,所以情况可能并非如此。
答案 4 :(得分:1)
除了注释掉pam_motd.so行之外,不要忘记在/etc/pam.d/login和/etc/pam.d/system-login中注释掉以下行:
会话可选pam_lastlog.so
像这样,“上次登录”行被打印一次而不是两次。
答案 5 :(得分:1)
我认为确保打印MOTD的唯一组件是PAM会更有意义。这样您就可以在其他任何地方禁用它,并且仍然符合您的审核要求。
只需我0.02美元。
答案 6 :(得分:1)
当我遇到这个问题时,我了解到,当系统发给我时,这是一组活动设置。在SSH身份验证发生之前打印了消息的第一个副本,这是由于在 sshd_config 中设置了SSH的Banner
选项:
Banner /etc/motd
滥用MOTD而不是滥用Banner
。
打印消息的第二个副本,因为在默认配置中,SSH在登录时打印MOTD。我通过设置PrintMotd
:
PrintMotd no
答案 7 :(得分:1)
我遇到了与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应该不会造成麻烦。
答案 8 :(得分:0)
可能是从shell本身完成的。检查全局配置文件和bashrc以查看是否可能出现这种情况。
答案 9 :(得分:0)
要仅允许pam_motd.so模块打印motd,请将/etc/login.defs中的MOTD变量设置为空字符串。
MOTD_FILE“”