我有一个脚本,将由一个人使用SSH登录到服务器运行。
是否有一种方法可以自动找出用户从哪个IP地址连接?
当然,我可以询问用户(这是程序员的工具,所以这没有问题),但如果我自己找到答案,那就更好了。
我有一个脚本,将由一个人使用SSH登录到服务器运行。
是否有一种方法可以自动找出用户从哪个IP地址连接?
当然,我可以询问用户(这是程序员的工具,所以这没有问题),但如果我自己找到答案,那就更好了。
当前回答
Linux:我是谁| awk的{打印5美元}| sed的/ (())/ / g’
AIX:我是谁| awk的{打印6美元}| sed的/ (())/ / g’
其他回答
最后是一个简单的命令来获取最近登录到计算机的用户列表。这是最近的顺序,所以last | head -n 1将显示最后一次登录。这可能不是当前登录的用户。
样例输出:
root pts/0 192.168.243.99 Mon Jun 7 15:07 still logged in
admin pts/0 192.168.243.17 Mon Jun 7 15:06 - 15:07 (00:00)
root pts/0 192.168.243.99 Mon Jun 7 15:02 - 15:06 (00:03)
root pts/0 192.168.243.99 Mon Jun 7 15:01 - 15:02 (00:00)
root pts/0 192.168.243.99 Mon Jun 7 13:45 - 14:12 (00:27)
root pts/0 192.168.243.99 Mon May 31 11:20 - 12:35 (01:15)
...
netstat -tapen | grep ssh | awk '{ print $4}'
Linux:我是谁| awk的{打印5美元}| sed的/ (())/ / g’
AIX:我是谁| awk的{打印6美元}| sed的/ (())/ / g’
您可以使用命令:
server:~# pinky
它会给你这样的东西:
Login Name TTY Idle When Where
root root pts/0 2009-06-15 13:41 192.168.1.133
假设他打开了一个交互式会话(即分配了一个伪终端),而您可以访问stdin,您可以在该设备上调用ioctl以获得设备号(/dev/pts/4711),并尝试在/var/run/utmp中找到该设备号(其中还将有用户名和连接起源于的IP地址)。