0%

Linux控制用户登录前后信息显示

Linux 下使用 /etc/issue、/etc/issue.net 和 /etc/motd 三个文件来控制近端登录和远程登录前后的信息显示,新版本还有动态 motd: /run/motd.dynamicpam模块来控制。

近端登录(tty)和远程登录(pts):


/etc/issue

在近端登录(tty)之前显示的,支持转义字符

1
2
3
4
$ sudo vi /etc/issue

/etc/issue 添加:
Welcome back, Login from tty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
\d : 插入目前日期
\t : 插入当前时间

\s : 插入系统名称,操作系统名称
\r : 插入操作系统版本号,例如1.1.9.
\v : 插入操作系统的版本
\m : 展示设备的架构标记符,例如i486

\n : 插入设备主机名
\o : 插入设备域名

\l : 插入当前tty终端名称
\u : 插入当前登录用户数
\U : 插入当前登录用户数,以 “1 user” or “ users” 形式

/etc/issue.net

在远程登录(pts)之前显示的(SSH默认不开启),不支持转义字符

1
2
3
4
$ sudo vi /etc/issue.net

/etc/issue.net 添加:
Welcome back, Login from pts

ssh 开启 issue.net

1
2
3
4
$ sudo vi /etc/ssh/sshd_config

去掉这行注释:
Banner /etc/issue.net

重启 ssh 服务:

1
$ sudo service ssh restart

/etc/motd

在登录之后显示的,和登录方式无关,tty登录和pts登录成功之后都会显示

在较新的Linux版本中,静态 /etc/motd 未启用,启用的是动态 /run/motd.dynamic
启用静态 /etc/motd , 需新建 /etc/motd 文件:

1
2
3
4
$ sudo vi /etc/motd

写入:
Welcome back, you can start working

重新登录之后:


/run/motd.dynamic

/run/motd.dynamic 是由 /etc/update-motd.d/ 下的几个脚本文件来动态生成的,每次登录都会自动更新

登录之后显示:

可通过在PAM登录模块配置文件中禁用动态motd,配置文件路径和方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/etc/pam.d/login ---> 对tty登录生效

# Prints the last login info upon succesful login
# (Replaces the `LASTLOG_ENAB' option from login.defs)
session optional pam_lastlog.so

# 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 noupdate
session optional pam_motd.so

# 注释掉包含 pam_motd.so 的两行
# 最后一次的登录信息如果也不想显示的话,注释掉包含 pam_lastlog.so 的那一行

--------------------------------------------------

/etc/pam.d/sshd ---> 对pts登录生效

# Print the message of the day upon successful login.
# 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 noupdate
session optional pam_motd.so # [1]

# 注释掉包含 pam_motd.so 的两行

tty登录:

pts登录: