有没有办法用登录详细信息创建 MOTD?

Gok*_*mar 3 linux ssh motd

有没有办法在 MOTD 显示中显示活动的 SSH 登录详细信息?就像,我想显示连接起源的 IP 地址以及会话处于活动状态的时间。这可能吗?

额外更新:

# tty --silent && finger
Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
root      root       pts/0          Jun 22 00:33                           (192.168.2.2)
root      root       pts/1          Jun 22 00:38                           (192.168.2.2)
Run Code Online (Sandbox Code Playgroud)

有没有办法从上面的输出中删除 Office & Office Phone,让它看起来更好一点?另外,它只是说用户什么时候登录。有没有办法也显示用户登录了多少时间?

ilk*_*chu 5

您可以使用who或显示当前用户finger。要在登录时运行其中之一,您可以将其添加到用户的 shell 的启动文件中。假设您的用户运行 Bash(或其他读取 的 shell /etc/profile),您可以在那里放置如下内容:

tty --silent && finger
Run Code Online (Sandbox Code Playgroud)

(tty找出 shell 是否在终端上打开。如果不对其进行测试,输出可能会弄乱非交互式实用程序。)

至少在 Debian/Ubuntu 上,默认情况下/etc/profile也运行脚本/etc/profile.d/(文件需要以 结尾.sh),因此您可以将命令放在那里的新文件中。


此外,Ubuntu 有一个专门用于动态更新 MOTD 文件的系统。该pam_motd模块在 中运行脚本/etc/update-motd.d并将其输出存储在 中/etc/motd.dynamic,然后将其显示给用户。在这种情况下,它会通过通常的 MOTD 流程,因此您无需检查tty或执行任何操作。参见Ubuntu wiki 上的egupdate-motd(5)UpdateMotd 页面