ssh를 위해 Debian Jessie 8.2에서 동적 오늘의 메시지 (motd)를 설정하는 방법은 무엇입니까?


16

나는 동적 운동을하고 싶지만 어떻게 해야하는지 알 수 없습니다.

내가 추가 발견 어떤 시도 /etc/update-motd.d/00-header, 10-sysinfo, 90-footer,과에 심볼릭 링크 /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와 혼동됩니다.

이 방법이 있습니까? 누군가가 간단한 재산으로 예를 제공 할 수 있습니까?


pam_motd.so noupdate거기에 문제 가되지 않습니까?
Jakuje

답변:


11

아래의 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/motdin에서 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

고마워요! 나는를 추가했다 .new결국에 /etc/pam.d/sshd: session optional pam_motd.so motd=/run/motd.new링크 sudo ln ds /run/motd /etc/motd. 그리고 나는 export LANG="eo"운을보기 위해 잊었다 .
batisteo

이 솔루션은 또한 데비안 7에서도 작동합니다.
azmeuk

이 기본 솔루션은 데비안 스트레치 9에도 적용되며, 약간의 수정이 필요합니다. – 읽을 파일이 현재/run/etc/motd.dynamic.new
cam8001

12

이것은 몇 년에 걸쳐 변경되었습니다.

먼저 /etc/motd(정적) 이있었습니다 .

그런 다음 우분투는 update-motd크론에서 나온 스크립트를 기반으로 자체 패키지 를 만들었습니다.

마지막으로 PAM은 Ubuntu의 /etc/update-motd.d/ 아이디어를 복사 했으므로 데비안과 다른 사람들도 그 행동을 취합니다.

여기에 설명이 있습니다

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

이것이 그래서 일이 현재 얼마나 : PAM은 읽을 수 /var/run/motd.dynamic/etc/motd존재하는 경우 (게시물에서 붙여 넣기)

  • /etc/motd– 클래식 정적 파일. 우분투 16.04 LTS에는 더 이상 존재하지 않으며 / var / run / motd에 대한 심볼릭 링크가 아닙니다. 작성된 경우 내용도 인쇄됩니다.
  • /var/run/motd– 이것은 Ubuntu의 첫 번째 구현에서 사용되었습니다. 더 이상 사용되지 않습니다. PAM에서는 무시됩니다.
  • /var/run/motd.dynamic– 현재 로그인시 표시되는 내용입니다. 부팅 할 때마다 /etc/init.d/motd에 의해 업데이트됩니다. 또한 PAM은 스크립트가있는 경우 /etc/update-motd.d/에서 스크립트를 실행하여 PAM에 의해 업데이트됩니다.
  • /etc/motd.tail– /etc/update-motd.d를 채우는 데 사용되는 Ubuntu 패키지. 그중 하나가이 파일의 내용을 정리하여 정적 내용을 쉽게 추가 할 수있었습니다. 해당 스크립트는 더 이상 패키지에 존재하지 않으므로 파일에 의도 한 효과가 없습니다.

게시물의 예

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/*
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.