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

有没有办法创建带有登录详细信息的 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)

有没有办法从上面的输出中删除 Office 和 Office Phone,以便它看起来好一点?另外,它只是说明用户登录的时间。有没有办法也显示用户登录的时间?

答案1

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

tty --silent && finger

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

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


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

相关内容