以下のように、Debian Jessie 8.2ホストで運命の例を使用して簡単なdynamic-motdをテストすることができ、問題がバグのある動作に関連していることがわかりました。
mkdir /etc/update-motd.d
cd /etc/update-motd.d
以下の2つのテストファイルを作成し、実行可能にしました
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プロセスを追跡しました。そのトレース(以下に示す興味深い部分)から、新しく作成された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
in からinに変更するだけ/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
以下は、sshログイン中に見られるサンプルMOTDです...
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 x.x.x.x
pam_motd.so noupdate
そこに問題はないでしょうか?