我有一个脚本,将由一个人使用SSH登录到服务器运行。
是否有一种方法可以自动找出用户从哪个IP地址连接?
当然,我可以询问用户(这是程序员的工具,所以这没有问题),但如果我自己找到答案,那就更好了。
我有一个脚本,将由一个人使用SSH登录到服务器运行。
是否有一种方法可以自动找出用户从哪个IP地址连接?
当然,我可以询问用户(这是程序员的工具,所以这没有问题),但如果我自己找到答案,那就更好了。
当前回答
在你的Linux机器上输入以下命令:
who
其他回答
通常在/var/log/messages(或类似的,取决于你的操作系统)中有一个日志条目,你可以用用户名来grep它。
netstat -tapen | grep ssh | awk '{ print $4}'
who | cut -d"(" -f2 |cut -d")" -f1
@Nikhil Katre的回答让我竖起大拇指:
让最后10个用户登录到计算机的最简单的命令是last|head。 要获取所有用户,只需使用last命令
使用who或pinky的人做了什么基本上是在问。但是但是但是他们不提供历史会话信息。
如果你想知道刚刚登录的人是谁,这可能也很有趣 当您开始检查时,已经注销了。
如果是多用户系统。我建议添加您正在寻找的用户帐户:
last | grep $USER | head
编辑:
在我的例子中,$SSH_CLIENT和$SSH_CONNECTION都不存在。
检查是否有一个环境变量叫做:
$SSH_CLIENT
OR
$SSH_CONNECTION
(或任何其他环境变量),在用户登录时设置。然后使用用户登录脚本处理它。
提取IP:
$ echo $SSH_CLIENT | awk '{ print $1}'
1.2.3.4
$ echo $SSH_CONNECTION | awk '{print $1}'
1.2.3.4