RK3588命令行(SSH)登录字符logo修改

一、修改方式

进入文件系统后,打开/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/login配置文件中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 评论

留下您的评论.