/etc/motd печатает дважды в Gentoo Linux
Вопрос
Я столкнулся с проблемой, когда я получаю две распечатки моего файла /etc / motd в Gentoo Linux.sshd выполняет одну из распечаток, и я могу переключить это, настроив /etc/ssh/sshd_config, но я не могу узнать, кто печатает вторую копию.Я не могу отключить sshd от распечатки motd из-за требований аудита.Я запускаю оболочку bash, чего бы это ни стоило
Есть какие-нибудь идеи, кто напечатает второй экземпляр?Я не думаю, что это bash, так как когда я меняю /etc/passwd на использование /bin/ksh для своей оболочки, я по-прежнему получаю отображаемый motd.
Это не проблема с /etc /, поскольку он содержит строку "Это (\ s \ m ) (\l)", которая печатается только тогда, когда вы сидите перед компьютером.
Решение
Похоже, ответ был в файлах /etc/pam.d/login и /etc/pam.d/system-login. Мне пришлось закомментировать строки pam_motd.so.
Другие советы
Вы входите через SSH-соединение ?? .. Если это так, возможно, вы должны включить и не указывать ключ " PrintMotd No " в вашем файле sshd_config и перезапустите службу ...
У меня тоже была эта проблема, и меня беспокоило не двойное выражение, а двойной "Последний вход в систему". строки со ссылкой на событие входа в систему прямо над ним.
Я подумал, что это может указывать на какую-то нечестную игру, как если бы мой логин перенаправлялся или передавался через шпионское ПО или что-то в этом роде.
Вот как выглядят нижние 5 строк моего /etc/pam.d/system-login:
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, и была вызвана Banner
опция, устанавливаемая в sshd_config:
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
Недостатком является то, что если процесс обновления этого сообщения занимает некоторое время (или процессорное время), вход в систему может привести к потере некоторого ресурса, а для этого потребуется некоторое время или даже тайм-аут.
Однако базовое MOTD по умолчанию, настроенное из коробки в Ubuntu 15.04, не должно вызывать проблем.
Вероятно, это делается из самой оболочки. Проверьте глобальный профиль и bashrc, чтобы увидеть, может ли это быть так.
Чтобы позволить только модулю pam_motd.so печатать motd, установите переменную MOTD в /etc/login.defs в пустую строку.
MOTD_FILE " "