다른 모든 스크립트처럼 실행되는 99-wlan0-RWB
새 스크립트를 만들었습니다 . /etc/update-motd.d
단독으로 실행하거나 를 통해 실행하면 작동 run-parts
하지만 로그인하면 작동하지 않습니다. 무엇이 문제인가요? (라즈베리 파이에서도 같은 문제가 발생했습니다.전혀스크립트를 실행 중입니다 update-motd.d
. )( 에는 아무것도 없습니다 /var/log/syslog
.)
$ ssh root@mini31
Linux mini31 4.19.0-18-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64
External IP: xx.yyy.zzz.www
______________________________________
/ 1st graffitiist: QUESTION AUTHORITY! \
| |
\ 2nd graffitiist: Why? /
--------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
df: 43G (81%)
O2: 1.65 GB / 3.3 GB
Lebara: 6.49 MB / 66 MB
up: 10 days, la: 1:0.11, 5:0.14, 15:0.10
mssql tempdb.mdf is 515M
CPU temp.: +52.0
No mail.
mini31 # cd /etc/update-motd.d/
mini31 # ./98-data
df: 43G (81%)
O2: 1.65 GB / 3.3 GB
Lebara: 6.49 MB / 66 MB
up: 10 days, la: 1:0.18, 5:0.15, 15:0.10
mssql tempdb.mdf is 515M
CPU temp.: +50.0°C
mini31 # ./99-wlan0-RWB
wlan0 is up
mini31 #
답변1
나도 같은 문제가 있었고 무슨 일이 일어나고 있는지 알아내는 데 3일 밤이 걸렸습니다. 하지만 파일 이름에 대문자가 있습니다. 파일 이름을 모두 소문자로 바꾸면 작동이 시작됩니다. 실망스럽게도 명명 규칙에 대한 문서에는 이 내용이 명시되어 있지 않습니다(https://manpages.ubuntu.com/manpages/jammy/en/man5/update-motd.5.htm)
답변2
최신 시스템의 경우 MOTD는 pam_motd
PAM 인증/권한 부여 하위 시스템을 통해 제어됩니다(참고자료 참조 man pam_motd
). 세션이 열릴 때 sshd
및 도구에 의해 트리거됩니다 .login
관련 항목의 출처는 다음과 같습니다./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
첫 번째 항목에서 참조된 파일은 /run/motd.dynamic
처리 디렉터리의 실행 가능한 스크립트에 의해 생성됩니다 /etc/update-motd.d/
. 즉, 사용자가 로그인할 때마다 파일이 업데이트됩니다.
두 번째 항목은 단순히 고정된 파일의 내용을 출력합니다 /etc/motd
.
이제 스크립트가 실행되지 않는 이유에 대해 두 가지 제안이 있습니다.
- 연결된 디렉터리 및/또는 파일에 대한 권한이
/etc/update-motd.d
너무 광범위합니다. (이것이 문제인지는 모르겠지만 루트로 실행되기 때문에 문제가 될 것입니다.) - PAM 정의 파일의 항목이 누락되었거나 주석 처리되었습니다.
답변3
/etc/motd
로그인 시 업데이트 방법은 다음과 같습니다. 나는 이것을 내 RPi OS 깨진 시스템에서 테스트했고 그것은 나에게 효과적입니다. pam_motd
동일하거나 유사한 결과를 얻을 수 있는 다른 방법(예: 사용)이 있습니다 . 제가 주의를 기울이지 않으면 단순한 MOTD가 상당히 복잡해졌습니다. 이것데비안 위키motd
Raspberry Pi OS와 같은 Debian 기반 배포판에 대한 대부분의 세부 정보를 다루고, 기타 motd
여러 일반적인 배포판을 처리하는 방법도 요약합니다.
로그인 시 파일을 생성/새로 고치는 한 가지 방법 /etc/motd
은 로그인 시 명령을 실행하여 업데이트하는 것입니다. 로그인 스크립트 의 경우 bash
이 파일에서 실행할 수 있습니다 ~/.profile
.
pi
다음은 SSH 로그인을 통해 내 시스템에서 작동하는 간단한 예입니다. user 끝에 추가된 한 줄의 명령 시퀀스입니다 ~/.profile
. 수정하려면 권한이 필요하므로 다음을 /etc/motd
통해 root
파일에 가장 편리하게 쓸 수 있습니다 .tee
sudo
printf "Hello from .profile for %s.\n" $USER | sudo tee -a /etc/motd >/dev/null
-a
많은 사용 사례에 적합하지 않을 수 있는 tee
옵션을 첨부하는 것은 단순히 인수를 생략하여 재정의(동등한)를 호출하는 것입니다 . 또한 리디렉션을 사용하면 MOTD가/etc/motd
>
-a
/dev/null
반복하다터미널의 로그인 화면에서
노트:
sudo
사용자가pi
파일에 설정을 가지고 있기 때문에 여기서 호출이 작동합니다. 현재NOPASSWD
sudoers
기본RPi OS 차단기 설정.SSH 로그인을 위한 MOTD 표시통제된다고 하네요
/etc/ssh/sshd_config
패스( ) 에서PrintMotd
.하지만, Debian 배포판의 경우 이 옵션을 기본값( )no
으로 설정해야 MOTD가 에서 한 번, 다시 에서 두 번 출력됩니다 .sshd
yes
sshd
pam_motd
re의 의견을 읽어보세요
~/.profile
.~/.bash_profile
아니면 존재~/.bash_login
.