在 Unix 中,如果用户从特定 IP(或主机)登录,如何显示欢迎消息?

In Unix, how to display welcome message if user has logged in from a particular IP (or host)?

如果用户 XYZ 从任何 IP(或主机)登录,我想显示一条消息。

检查您是否设置了 SSH_CLIENTSSH_CONNECTION 等环境变量。如果是这样,您可以从脚本(perl、bash 等)访问这些以动态生成欢迎消息。下面是一个简单的 perl 脚本,用于从环境变量 SSH_CLIENT 中提取 IP 地址并输出欢迎消息。

#!/usr/bin/env perl
use strict; use warnings;
my $ip = (split / /, $ENV{SSH_CLIENT})[0];
if ($ip eq 'xxx.xxx.xxx.xxx') {
  print "Hello XXXX\n";
}
else {
  print "Hello from unknown IP\n";
}

那么你需要在登录时执行这个脚本。您可以通过从 /etc/profile 末尾调用脚本来执行此操作。

也可以使用 shell 脚本作为

 REMOTE_IP=`echo $SSH_CONNECTION | cut -f1 -d " "`
if [ $REMOTE_IP == 'XXX.XXX.XXX.X' ] ;
      then echo "Hi XXX" ;
else echo "Hi, stranger...";
fi

然后 运行 这个脚本来自 /etc/profile