一、Banner网站
二、设置Banner
- 想在登录Linux后显示自定义的欢迎界面
- 修改:
/etc/motd编辑你想要的即可
1 2 3 4 5 6 7 8 9 10 11 12 13
| _ `-._ `-. `. \ : / .' .-' _.-' _ `--._ `-._ `-. `. `. : .' .' .-' _.-' _.--' `--._ `-._ `-. `. \ : / .' .-' _.-' _.--' `--.__ `--._ `-._ `-. `. `. : .' .' .-' _.-' _.--' __.--' __ `--.__ `--._ `-._ `-. `. \:/ .' .-' _.-' _.--' __.--' __ `--..__ `--.__ `--._ `-._`-.`_=_'.-'_.-' _.--' __.--' __..--' --..__ `--..__ `--.__ `--._`-q(-_-)p-'_.--' __.--' __..--' __..-- ``--..__ `--..__ `--.__ `-'_) (_`-' __.--' __..--' __..--'' ...___ ``--..__ `--..__`--/__/ \--'__..--' __..--'' ___... ```---...___ ``--..__`_(<_ _/)_'__..--'' ___...---''' ```-----....._____```---...___(__\_\_|_/__)___...---'''_____.....-----''' ___ __ ________ _______ _ _ _______ ___ __ _______
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| _.----. .-" \-. / ; \ : /: \ ; .' ; ; ; .-" : : : _.+( .-- : : ; ; ' : : ; : ; ; : ; - : : ) ' .-. ' : ( '. `"' .' ; "-._.:`---':-"-.'+' ; ; " _..__.-. -. (: ,' .:(o); "-._ : _: 0 ; \`. ; .'/.\-/-. `: : : : -U--:"-. \ ; ; ; : ----; "-.L.-" \ '. ' \ ---( ;O: ; \ '. '-;-' :-: : `. ""/ ; : ; ""T .-": :`. / : --"" : ; Y ; ; : : : : ; ; ; : ; : : : ; : ; \ ; : ; : \_ : : \ \"-. ; ; \ `. "-. : : c \ `./"-._ ; : \ \ "-. : ; `. ;-. -.`. : : __..--"" \ : `.\.`.\ ; :_..--""; ; _.-'\ ; ")))T : ; _L.-'"" ; : '-=' ; :_..--"" : ; / ; ;; : .' / ;: J `. / ;'" :-.' /\ ; ; / ; : : / : : ; / ; : : / bug ; : ; / : : : / : :
|
三、动态MOTD实现详解
动态MOTD可以在用户登录时显示实时系统信息、个性化问候等动态内容,让登录界面更加实用和有趣。
1、动态MOTD工作原理
Linux系统主要通过以下几种方式实现动态MOTD:
/etc/update-motd.d/ 目录(Ubuntu/Debian等发行版)
/etc/motd 脚本执行(通用方法)
- **PAM模块
pam_motd**(系统级集成)
2. 创建自定义动态MOTD脚本
1
| sudo mkdir -p /etc/update-motd.d
|
- 验证PAM配置:动态 MOTD 依赖 PAM 模块。检查
/etc/pam.d/sshd 文件,确保包含如下行且未被注释(行首没有 #)
1
| session optional pam_motd.so motd=/run/motd.dynamic noupdate
|
- 如果不存在,请添加。此配置会确保 SSH 登录时执行动态脚本。
- 在
/etc/update-motd.d/ 目录下创建可执行脚本。文件名以数字开头(如 00-, 01-),系统会按数字顺序执行
- 例如,创建显示系统基本状态的脚本:
01-system-info
1 2 3 4 5 6 7 8 9
| #!/bin/bash
echo "=============== 系统状态 ===============" printf "主机名 : %s\n" "$(hostname)" printf "运行时间 : %s\n" "$(uptime -p)" printf "系统负载 : %s\n" "$(uptime | awk -F'load average:' '{print $2}')" printf "内存使用 : %s\n" "$(free -h | awk '/^Mem:/ {print $3" / "$2}')" printf "磁盘使用(/) : %s\n" "$(df -h / | awk 'NR==2 {print $3" / "$2 " (" $5 ")"}')" echo "========================================"
|
- 保存后,赋予执行权限:
sudo chmod +x /etc/update-motd.d/01-system-info
- 也可以创建一个banner脚本,例:
00-static-banner
1
| sudo vim /etc/update-motd.d/00-static-banner
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #!/bin/bash
cat << 'EOF' . . . + . . . . . . . . . . "#:. .:##"##:. .:#" . . . . "####"###"####" . . "#:. .:#"###"#:. .:#" . . . . "#########"#########" . . . "#:. "####"###"####" .:#" . . . . "#######""##"##""#######" . ."##"#####"#####"##" . . . "#:. ... .:##"###"###"##:. ... .:#" . . "#######"##"#####"##"#######" . . . . "#####""#######""#####" . . . " 000 " . . . . . 000 . . . .. .. ..................O000O........................ ......
EOF
|
1 2
| sudo chmod +x /etc/update-motd.d/00-static-banner sudo chmod +x /etc/update-motd.d/01-system-info
|
- 测试与生效:
- 手动测试执行:
sudo run-parts /etc/update-motd.d
- 登录验证:打开一个新的 SSH 终端或直接重新登录当前服务器,即可看到最终的动态欢迎信息。