6

我遇到了一个问题,我在 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)”,仅当您坐在机器前时才会打印。

4

10 回答 10

8

看起来答案在 /etc/pam.d/login 和 /etc/pam.d/system-login 文件中。我不得不注释掉 pam_motd.so 行。

于 2008-10-10T12:44:11.890 回答
4

您是从 SSH 连接登录吗??.. 如果是这样,也许您必须在 sshd_config 文件中启用并设置为 no 键“PrintMotd No”并重新启动服务...

于 2008-12-18T16:11:13.643 回答
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

注意注释掉的行。现在一切都按预期工作。谢谢,丹尼尔。

于 2009-03-25T17:34:08.763 回答
3

我在 Ubuntu 15.04 和配置为使用 PAM 身份验证的 SSHD 上遇到了同样的问题。我的服务器正在发送两个 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 不会造成问题。

于 2015-09-08T08:29:55.583 回答
1

另请查看 /etc/issue,有些系统会同时打印两者,它们可能只包含相同的文本。请注意,我不使用 gentoo,所以情况可能并非如此。

于 2008-10-10T11:47:20.210 回答
1

除了注释掉 pam_motd.so 行之外,别忘了还要注释掉 /etc/pam.d/login 和 /etc/pam.d/system-login 中的以下行:

会话可选 pam_lastlog.so

像这样,“最后登录”行打印一次而不是两次。

于 2008-12-30T01:01:52.513 回答
1

我认为确保打印 MOTD 的唯一组件是 PAM 会更有意义。这样,您可以在其他任何地方禁用它,并且仍然符合您的审核要求。

只是我的 0.02 美元。

于 2010-11-25T02:50:07.230 回答
1

当我遇到这个问题时,我了解到这是系统发给我时活动设置的组合。该消息的第一个副本是在 SSH 身份验证发生之前打印的,这是由于在sshd_configBanner中设置了 SSH 的选项:

Banner /etc/motd

滥用 MOTD 多于滥用Banner.

打印了该消息的第二个副本,因为在其默认配置中,SSH 在登录时打印 MOTD。我通过设置禁用它PrintMotd

PrintMotd no
于 2013-10-02T17:13:25.530 回答
0

它可能是从外壳本身完成的。检查全局配置文件和 bashrc 以查看是否是这种情况。

于 2008-10-10T11:46:19.680 回答
0

要仅允许 pam_motd.so 模块打印 motd,请将 /etc/login.defs 中的 MOTD 变量设置为空字符串。

MOTD_FILE ""

于 2013-02-11T02:02:11.617 回答