在 Unix 中,如果用户从特定 IP(或主机)登录,如何显示欢迎消息?
In Unix, how to display welcome message if user has logged in from a particular IP (or host)?
如果用户 XYZ 从任何 IP(或主机)登录,我想显示一条消息。
检查您是否设置了 SSH_CLIENT
和 SSH_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
如果用户 XYZ 从任何 IP(或主机)登录,我想显示一条消息。
检查您是否设置了 SSH_CLIENT
和 SSH_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