一、修改方式
进入文件系统后,打开/etc/update-motd.d
目录下的 00-header
文件,
里面的
TERM=linux toilet -f standard -F gay Eavison
字符Eavison
就是SSH或者debug串口登录后显示的内容logo,直接修改即可;
修改完成以后,直接运行指令:
sudo run-parts /etc/update-motd.d
即可看到修改后的字符。
二、底层逻辑
修改方式其实很容易就能找到,但是,其背后的运行逻辑,网上的资料较少。
除了Debian系的发行版以外的其他linux版本,我们一般是通过修改/etc/motd
来修改启动字符logo,类似的启动界面信息还有/etc/issue
和 /etc/issue.net
,分别是用来控制debug串口登录显示和SSH登录显示的,后面的像Debian系发行版,对/etc/motd
进行了拓展,分为动态motd
和静态motd
,例如像Ubuntu自16.04以后就只启用了动态motd
,并且在/etc
目录下并没motd
文件,系统登录后,显示的字符界面其实来自于/run/motd.dynamic
,该文件由/etc/update-motd.d
目录下的脚本生成。
那么如何禁用该动态motd
功能呢?方法是将/etc/update-motd.d/
下的脚本移除或者去掉可执行权限。还有一种方法是在PAM登录模块配置文件中禁用动态motd
,该配置文件是/etc/pam.d/login
# Prints the message of the day upon succesful login.
# (Replaces the `MOTD_FILE' option in login.defs)
# 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
将其中的pam_motd.so
这两行注释掉即关闭动态dynamic motd
在关闭动态motd之后,发现登录之后还有会一行:Last login: Thu May 25 15:39:48 CST 2017 from 192.168.2.122 on pts/1
这是由/etc/pam.d/logi
n配置文件中pam_lastlog.so
这一行控制的,相应地注释即可。
如果需要静态motd消息,那么在/etc/目录下,新建或者修改配置文件motd,在其中定制你需要的登录后信息即可。
默认情况下/etc/issue.net
文件的内容不会在ssh登录前显示,要显示这个信息可以修改/etc/ssh/sshd_config
文件中的 Banner /etc/issue.net
,配置更改后,需要重启SSH服务。
/etc/issue.net
文件记录了操作系统的名称和版本号,这些登录提示很明显的泄漏了系统信息,为了安全起见,建议将系统相关信息去除。
三、参考资料
/etc/issue、/etc/issue.net和/etc/motd的区别
本文链接:https://my.lmcjl.com/post/2126.html
4 评论