linux用户登录时自动运行脚本

[日志]linux用户登录时的信息展示

0x00 前言

多人协作的服务器上, 需要在用户登录时给予关于服务器的相关操作注意事项及其基本信息的展示. 通过保存自动运行脚本, 完成此需求.

0x01 登陆自动运行脚本

在一般的linux发行版中(如centos), /etc/issue里存放了用户成功登录前显示的信息;
/etc/motd存放了用户成功登录后显示的信息.
但是在ubuntu中有些不一样, 它相关的是/etc/update-motd.d/文件夹下的几个脚本, 如下所示:
/etc/update-motd.d/脚本列表:
00-header
10-help-text
90-updates-available
91-release-upgrade
98-fsck-at-reboot
98-reboot-required
当我们通过ssh登录主机时,会输出/var/run/motd.dynamic 中的信息.

1
2
3
4
5
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 2.6.32-042stab133.2 x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

而/var/run/motd.dynamic 中的信息就是用户登录时系统已root身份执行上述/etc/update-motd.d/ 下面的几个脚本所生成的. Ubuntu每次登陆时都会默认显示如上提示信息, 可以删除相关脚本内容去除.

Linux下实现登陆自动加载指令, 有两种方式

  1. 在 /etc/motd 文件末尾直接写入脚本内容
  2. 在 /etc/profile.d 文件夹中放置.sh脚本文件

示例一:

通过root用户 输入命令 vim /etc/motd修改motd文件 ,在该文件中加入内容 echo “Hello,Welcome to Linux!”
退出用户,下次登陆显示结果:

1
2
3
4
5
6
7
8
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 2.6.32-042stab133.2 x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
echo "Hello,Welcome to Linux!"
Last login: Mon Feb 18 08:46:22 2019 from 211.97.3.xxx
root@la:~#

示例二:

在 /etc/profile.d 文件夹中加入shell脚本, 实现同样的效果:
进入该目录, 创建 test.sh 文件:

1
2
3
[root@spark elon]# cd /etc/profile.d/
[root@spark profile.d]# vi test.sh
echo "Hello,The twice time to login in linux!"
1
2
3
4
5
6
7
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 2.6.32-042stab133.2 x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Last login: Mon Feb 18 08:46:57 2019 from 211.97.3.xxx
Hello,The twice time to login in linux!

0x02 放置信息文本

/root/information/下新建基础信息文件svr_info.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
################################################
#- 服务器情况
# - ip地址: 198.46.xxx.xxx
# - 控制面板: manage.xxxx.cxm
# - 带宽: 1.95 TB
################################################
#- 端口占用情况
# - 22: ssh通道
# - 25: SMTP服务
# - 80: http端口(Apache占用)
# - 443: 暂未使用
# - 111: rpcbind
################################################

0x03 放置显示脚本

/etc/profile.d下创建文件login_info.sh

1
cat /root/information/svr_info.txt