Вопрос или проблема
У меня есть виртуальная машина Debian/Linux в VirtualBox.
# uname -a
Linux debian 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux
# vi /etc/motd
##########################
Привет, добро пожаловать на сервер!
##########################
~
~
~
~
~
"/etc/motd" 6 строк, 84 символа записано
:wq!
Когда я выхожу из терминала и вхожу как root, сообщение в /etc/motd
не появляется.
root@debian:~#
Как я могу сделать так, чтобы сообщение появилось?
Современный Debian (и многие другие дистрибутивы) используют pam_motd
, который запускается из их PAM стека. Смотрите эту статью в вики Debian для получения дополнительных сведений.
Возможно, у вас настроенная окружение PAM, или у вашего пользователя root есть файл ~/.hushlogin.
Вы можете настроить баннер в ssh_config
(или sshd_config
– это зависит от ОС). Обычно он находится в /etc/issue
, и всё, что вы поместите в этот файл issue, будет отображаться при входе через ssh
.
Ответ или решение
Проблема отсутствия сообщения в файле /etc/motd
при входе в вашу систему Debian/Linux может быть связана с несколькими факторами, которые стоит рассмотреть. Ниже приведены основные шаги для диагностики и решения данной проблемы.
1. Проверка конфигурации PAM (Pluggable Authentication Modules)
В современных дистрибутивах Debian для отображения сообщения из /etc/motd
используется модуль PAM, который управляет сообщениями при входе. Убедитесь, что ваш файл конфигурации PAM настроен правильно. Для этого откройте файл /etc/pam.d/sshd
(если вы подключаетесь по SSH) или /etc/pam.d/login
(если вы входите непосредственно в консоль) и проверьте, присутствуют ли следующие строки:
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so
Эти строки обеспечивают вывод сообщения из файла /etc/motd
при завершении сеанса входа.
2. Проверьте наличие файла ~/.hushlogin
Если для вашего пользователя (в данном случае root
) существует файл ~/.hushlogin
, то он будет предотвращать отображение сообщения MOTD. Проверьте это, выполнив в командной строке:
ls -la ~/.hushlogin
Если файл существует, вы можете удалить его:
rm ~/.hushlogin
3. Проверка наличия dynamic MOTD
В Debian используется динамический MOTD, который может перезаписывать вывод статического /etc/motd
. Убедитесь, что в файле /run/motd.dynamic
нет каких-либо настроек или ошибок, которые могли бы препятствовать отображению статического сообщения.
4. Перезагрузка системы и перезапуск SSH сервиса
После внесения изменений или проверок, рекомендуется перезапустить SSH сервер:
systemctl restart ssh
Или для локального входа просто выйдите из терминала и попробуйте войти заново.
5. Проверка конфигурации sshd_config
для SSH
Если вы подключаетесь через SSH, просмотрите файл /etc/ssh/sshd_config
и убедитесь, что параметры PrintMotd
и PermitUserFlushing
установлены соответственно:
PrintMotd yes
PermitUserFlushing yes
6. Тестирование ошибок
В случае, если вышеперечисленные шаги не помогли, попробуйте протестировать вход от имени другого пользователя, чтобы исключить возможность проблемы, связанной с конфигурацией конкретного пользователя. Это также поможет вам увидеть, появляется ли сообщение MOTD у других пользователей.
Заключение
После выполнения вышеуказанных шагов вы должны увидеть ваше приветственное сообщение при входе в систему. Если проблема все еще сохраняется, стоит обратиться к лог-файлам системы (например, /var/log/auth.log
), где могут содержаться подсказки по дальнейшему устранению проблемы.