Intereting Posts
Как установить драйвер WiFi в Debian 9? Как определить долю samba, чтобы каждый пользователь мог видеть только свой дом? Разделить файл по строке, удалив первое поле и используя его как имя для получаемой части Команда Zip, создающая каталог при разархивировании файла Автоматически запускать приложение с модифицированным LD_PRELOAD? Не удалось подключиться к узлу 127.0.0.1: соединение отклонено Ошибка линкера libxml Как получить доступ к локальному зеркалу репозитория? Мой crontab любит только пять звездочек (связанный с часовым поясом?) rcp обрезает имена каталогов на redhat как получить содержимое в определенном тексте из файла Bash: слияние имени папки из переменной с именем файла Как выполнить изменения конфигурации отката в SSH в случае сбоя? Как преобразовать пунктирную строку в пробелы и кепки? Объединение нескольких таблиц с разделителями табуляции на основе общих столбцов

Как установить динамическое сообщение дня (motd) в Debian Jessie 8.2 для ssh?

Я хотел бы иметь динамический мотив, но я не могу понять, как это сделать.

Я попробовал то, что нашел, добавив /etc/update-motd.d/00-header , 10-sysinfo , 90-footer и symlinking в /etc/motd /var/run/motd.dynamic , /run/motd.dynamic , /run/motd или /var/run/motd .

У меня эти строки в /etc/pam.d/sshd :

 # 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 

Меня тоже путают с systemd.

Есть ли способ сделать это? Может ли кто-нибудь представить пример с простым состоянием?

Я могу протестировать простой динамический монт с примером удачи на моем хосте Debian Jessie 8.2, как показано ниже, и обнаружил, что проблема связана с ошибкой поведения.

 mkdir /etc/update-motd.d cd /etc/update-motd.d 

Создал два тестовых файла, как показано ниже, и сделал их исполняемыми

 root@debian:/# cd /etc/update-motd.d/ root@debian:/etc/update-motd.d# ls -l total 8 -rwxr-xr-x 1 root root 58 Dec 1 23:21 00-header -rwxr-xr-x 1 root root 41 Dec 1 22:52 90-fortune root@debian:/etc/update-motd.d# cat 00-header #!/bin/bash echo echo 'Welcome !! This is a header' echo root@debian:/etc/update-motd.d# cat 90-fortune #!/bin/bash echo /usr/games/fortune echo 

Однако в это время изменений в motd не было. Так что я стараюсь sshd process.From этой трассировки (интересные части, показанные ниже), вы можете увидеть, что вновь созданный файл motd.new переименован в / var / run / motd. Однако позже он пытается прочитать из /run/motd.dynamic – который никогда не был создан

 20318 rename("/var/run/motd.new", "/var/run/motd") = 0 20318 open("/run/motd.dynamic", O_RDONLY) = -1 ENOENT (No such file or directory) 20318 open("/etc/motd", O_RDONLY) = 8 

Проблема, похоже, связана с несогласованностью с модулем pam_motd. См. Отчет об ошибке https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743286;msg=2

Простое изменение местоположения файла motd из /run/motd.dynamic в /run/motd в /etc/pam.d/sshd – заставляет его работать на меня

 root@debian:/etc/pam.d# grep pam_motd sshd #session optional pam_motd.so motd=/run/motd.dynamic session optional pam_motd.so motd=/run/motd session optional pam_motd.so noupdate 

Вот пример MOTD, увиденный во время входа в ssh …

 Welcome !! This is a header * Culus fears perl - the language with optional errors The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. You have new mail. Last login: Tue Dec 1 23:49:57 2015 from xxxx 

За эти годы это изменилось:

Сначала был /etc/motd (статический).

Затем Ubuntu придумал свой собственный пакет update-motd на основе сценария, называемого cron.

Наконец, PAM скопировал идею Ubuntu /etc/update-motd.d/, поэтому Debian и другие также имеют такое поведение.

Здесь есть объяснение

https://ownyourbits.com/2017/04/05/customize-your-motd-login-message-in-debian-and-ubuntu/

Так вот как это делается в настоящее время: PAM будет просто читать /var/run/motd.dynamic и /etc/motd если он существует (вставить из сообщения)

  • /etc/motd – классический статический файл. В Ubuntu 16.04 LTS больше не существует, даже в качестве символической ссылки на / var / run / motd. Если он создан, однако его содержимое также будет напечатано.
  • /var/run/motd – Это было использовано в первой реализации Ubuntu. Он больше не используется. PAM игнорируется.
  • /var/run/motd.dynamic – Это то, что показано при входе в систему. Он обновляется /etc/init.d/motd при каждой загрузке. Он также обновляется с помощью PAM, запуская скрипты в /etc/update-motd.d/, если они существуют.
  • /etc/motd.tail – пакет Ubuntu, используемый для заполнения /etc/update-motd.d. Один из них будет содержать содержимое этого файла, поэтому было бы легко добавить статический контент. Этот скрипт больше не существует в пакете, поэтому файл не имеет предполагаемого эффекта.

Пример из сообщения

 mkdir /etc/update-motd.d rm -f /etc/motd # in Debian still exists cat > /etc/update-motd.d/10logo <<EOF #!/bin/sh echo cat /etc/issue EOF cat > /etc/update-motd.d/20updates <<'EOF' #!/bin/sh echo echo "uptime is $( uptime )" echo "date is $( date )" EOF chmod a+x /etc/update-motd.d/*