Linux登录前后提示语
- /etc/issue 本地(虚拟控制台KVM等)登录前提示语,支持转义字符
- /etc/issue.net 远程(telnet,ssh)登录前提示语,不支持转义字符
- /etc/motd 登录后提示语
/etc/issue 和 /etc/issue.net :这2个文件是你在登录之前显示的,区别一个负责本地登录前显示,一个负责网络登录前显示。也即 /etc/issue 是显示在TTY控制台登录前(非图形界面),而 /etc/issue.net 是显示在 Telnet (SSH默认不开启)远程登录前,另外 /etc/issue.net 不支持转义字符。/etc/motd :这个文件是在你登录之后显示的,不管你是 TTY 还是 PTS 登录,也不管是 Telnet 或 SSH 都显示这个文件里面的信息。在较新的Linux发行版中,这个功能被扩展了,有了动态motd和静态motd的区别,在Ubuntu 16.04.01 LTS中,仅仅启用了动态motd,而未启用静态motd。动态motd来自 /run/motd.dynamic 文件,你可能想要修改这个配置文件来自定义你自己的登录后信息,可是却发现配置完毕后,再次登录时,配置文件中的信息又还原了。是的,这里的信息无法修改,因为它是由 /etc/update-motd.d/ 下的几个脚本文件来动态生成的。所以你可以通过/etc/update-motd.d/ 下的脚本来控制信息的生成。那么如何禁用该动态motd功能呢?方法一是将/etc/update-motd.d/ 下的脚本移除或者去掉可执行权限,还有一种方法是在PAM登录模块配置文件中禁用动态motd,该配置文件是/etc/pam.d/login。如下:
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这一行控制的,相应地注释即可。
# Prints the last login info upon succesful login # (Replaces the `LASTLOG_ENAB' option from login.defs) session optional pam_lastlog.so
如果需要静态motd消息,那么在/etc/目录下,新建或者修改配置文件motd,在其中定制你需要的登录后信息即可。
默认情况下/etc/issue.net 文件的内容不会在ssh登录前显示,要显示这个信息可以修改/etc/ssh/sshd_config 文件中的 Banner /etc/issue.net ,配置更改后,需要重启SSH服务。
含义:
\d : 插入目前日期
\t : 插入当前时间
\s : 插入系统名称,操作系统名称
\r : 插入操作系统版本号,例如1.1.9.
\v : 插入操作系统的版本
\m : 展示设备的架构标记符,例如i486
\n : 插入设备主机名
\o : 插入设备域名
\l : 插入当前tty终端名称
\u : 插入当前登录用户数
\U : 插入当前登录用户数,以 “1 user” or “ users” 形式