本实验中系统为rhel6
登陆显示信息
/etc/motd 登陆成功显示
/etc/issue 登陆界面信息打印
/etc/issue
\d 显示当前系统日期
\s 显示操作系统名称
\l 登陆终端号
\m 硬件体系结构
\n 主机名
\o 域名
\r 内核版本
\t 当前系统时间
\u 当前登录用户的序列号
#用sshd服务的登录界面配置
/etc/issue.net 远程终端欢迎信息
需要配置 /etc/ssh/sshd_config 加入行 Banner /etc/issue.net
且转义符会失效
https://man7.org/linux/man-pages/man5/issue.5.html
设置登陆界面打印IP信息
ifup-post / ifdown-post 在网络接口启动或关闭后要执行的命令。
[root@paly ~]#cat -n /etc/sysconfig/network-scripts/ifup-post | tail
102
103 # Notify programs that have requested notification
104 do_netreport
105
106 if [ -x /sbin/ifup-local ]; then
107 /sbin/ifup-local ${DEVICE}
108 fi
109
110
111 exit 0
[root@paly ~]#
/sbin目录下没有此脚本,所以在/sbin/目录下创建ifup-local脚本,且chmod +x 权限
[root@paly ~]#cat /sbin/ifup-local
#!/bin/bash
flag=$(awk '{if (NR==2){print($1=="Kernel") ?"0":"1"} } ' /etc/issue.net)
if [[ $flag -eq 1 ]]
then
echo "Kernel `uname -r` on `uname -p`" >> /etc/issue.net
fi
PREFIX="Local IP addresses:"
if [[ "$1" == "eth0" ]]
then
echo "this part will be executed right after eth0 is up."
IPADDRS=$(hostname -I | tr " " "\n" | grep -v "^$" | sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tr "\n" " ")
perl -i -p -0777 -e "s/^$PREFIX[^\n]*\n\n//m; s/$/\n$PREFIX $IPADDRS\n/ if length('$IPADDRS')>6" /etc/issue.net
fi
ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d: #取ip
参考https://serverfault.com/questions/209599/how-to-setup-etc-issues-to-show-the-ip-address-for-eth0
设置ssh登陆信息
这里配置了ssh打印日历信息,这里可以配置其他的脚本,来丰富登录信息。
[root@paly ~]#vim /etc/ssh/sshrc #创建/etc/ssh/sshrc文件,详细man ssh
[root@paly ~]#chmod +x /etc/ssh/sshrc
[root@paly ~]#cat /etc/ssh/sshrc
#!/bin/bash
cal
#!/bin/bash
ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
notify-send -u CRITICAL "SSH connection from ${ip}" "User $USER just logged in from $ip"
#当有人登录本机时,将通过 dbus 通知
Last login 信息
Last login: Tue Mar 22 19:58:44 2022 from 192.168.31.62
这里貌似只能修改sshd源码来修改last login信息。
last login 作用于wtmp、utmp文件,查到和loginrec.c中的login_get_lastlog函数有关。