아래의 Debian Jessie 8.2 호스트에서 fortune 예제를 사용하여 간단한 dynamic-motd를 테스트 할 수 있으며 문제가 버기 동작과 관련이 있음을 발견했습니다.
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 프로세스를 추적했습니다. 그 추적 (아래에 보이는 흥미로운 부분)에서 새로 생성 된 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
거기에 문제 가되지 않습니까?