实现登录消息的功能,可以修改3个文件。
1、/etc/issue 本地登陆显示的信息,本地登录前
2、/etc/issue.net 网络登陆显示的信息,登录后显示,需要由sshd配置
3、/etc/motd 常用于通告信息,如计划关机时间的警告等,登陆后的提示信息
$cat /etc/issue
CentOS release 6.7 (Final)
Kernel \r on an \m
使用man pam_issue就能够知道:
\d //本地端时间的日期;
\l //显示当前tty的名字即第几个tty;
\m //显示硬体的架构 (i386/i486/i586/i686…);
\n //显示主机的网路名称;
\o //显示 domain name;
\r //当前系统的版本 (相当于 uname -r)
\t //显示本地端时间的时间;
\u //当前有几个用户在线。
\s //当前系统的名称;
\v //当前系统的版本。
至于文件/etc/motd,(motd即motd即message of today布告栏信息的缩写) 则是在每次用户登录时,motd文件的内容会显示在用户的终端。
系统管理员可以在文件中编辑系统活动消息,例如:管理员通知用户系统何时进行软件或硬件的升级、何时进行系统维护等。如果shell支持中文,
还可以使用中文,这样看起来更易于了解。/etc/motd缺点是,现在许多用户登录系统时选择自动进入图形界面,所以这些信息往往看不到。
issue与motd文件主要区别在于:当一个用户过本地文本设备(如本地终端,本地虚拟控制台等)登录
/etc/issue的文件内容显示在login提示符之前,而/etc/motd内容显示在用户成功登录系统之后。
issue.net文件(只针对网络用户)–若通过远程本文设备(如通过ssh或telnet等)登录,则显示该文件的内容。
使用ssh登录时,会不会显示issue信息由sshd服务的sshd_config的Banner属性配置决定,但本人在测试时发现
虽设置了Banner属性但并未对issue.net中的\r和\m等内容进行转义,而是直接显示。
在/etc/ssh/sshd_config添加“Banner /etc/ssh/ssh_login_banner”
首先设置/etc/ssh/sshd_config,找到这一行
Banner /etc/issue
去掉前面的#注释,然后编辑/etc/issue这个文件
SSH登录服务器后显示基础信息:
安装landscape-common,可以在登录时候显示一些基础的信息,例如CPU内存占用等等
sudo apt-get install landscape-common
安装update-notifier-common,当有软件包更新的时候,会在SSH登录成功后提示用户
sudo apt-get install update-notifier-common
数据来源/var/run/motd.dynamic
该目录中存放的是自系统启动以来描述系统信息的文件,标准要求这个文件夹中的文件必须是在系统启动的时候清空,以便建立新的文件。
这就导致了,一个问题,当我修改完成后,再次启动时,修改信息依然无效。
修改方式
Ubuntu 与别的 Linux 不同,直接修改 /etc/motd 文件重登录后无效。因为这里 /etc/motd 是一个符号链接,指向 /var/run/motd,应该是一个启动后在生成的文件。
在Ubuntu系统中,找到生成的脚本在目录 /etc/update-motd.d/ 中,那几个有序号的文件就是,包括 00-header,10-help-text , 91-release- upgrade。修改这几个文件,可以得到自己想要的结果。
修改后用:sudo run-parts /etc/update-motd.d 去执行就会立即见到效果,而不用反复注销登录。