如果你是一个服务器管理员,你或许知道你要保护你的服务器的话,不仅是从外部,还要从内部保护。linux有一个内置工具来看到最后登陆服务器的用户,可以帮助你保护服务器。
这个命令是last。它对于追踪非常有用。让我们来看一下last可以为你做些什么。
last命令的功能是什么last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览,比如vi、Joe或者其他软件。这是非常有用的,因为用户(或者root)不能像他们希望的那样修改这个文件。
last会给出所有已登录用户的用户名、tty、IP地址(如果用户是远程连接的话)、日期-时间和用户已经登录的时间。
如何运行last你只要在控制台中输入last即可。这是个例子:
$ last leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53) pungki tty1 Mon Dec 2 09:31 still logged in reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)这里是如何阅读last信息:
第一列告诉谁是用户
第二列给出了用户如何连接的信息
pts/0 (伪终端) 意味着从诸如SSH或telnet的远程连接的用户
tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户
除了重启活动,所有状态会在启动时显示
第三列显示用户来自哪里。如果用户来自于远程计算机,你会看到一个主机名或者IP地址。如果你看见:0.0 或者什么都没有,这意味着用户通过本地终端连接。除了重启活动,内核版本会显示在状态中。
剩下的列显示日志活动发生在何时。括号中的数字告诉我们连接持续了多少小时和分钟。
日常操作中last的一些示例 限制显示行的数目当你有很多行要显示时,你可以限制你想看到的行的数目.使用 -n 参数来这么做。
$ last -n 3 leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53) pungki tty1 Mon Dec 2 09:31 still logged in reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)-n 参数会使last显示从当前时间到以后的3条记录。
不显示主机名使用 -R 参数来这么做。这里是例子 :
$ last -R leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) pungki tty1 Mon Dec 2 09:31 still logged in reboot system boot Mon Dec 2 09:20 - 13:25 (04:05)如你所见,现在在也没有关于主机或者IP地址的信息了。
最后一列显示主机名要这么做,我们使用 -a参数
$ last -a leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162 pungki tty1 Mon Dec 2 09:31 still logged in :0.0 reboot system boot Mon Dec 2 09:20 - 13:25 (04:05) 2.6.32-358.23.2.el6.i686现在主机信息诸如10.0.76.162 会放在最后一列。
显示完整登入登出时间日期对于此,你可以使用 -F 参数。这个是个示例:
$ last -F leni pts/0 10.0.76.162 Mon Dec 2 12:32:24 2013 – Mon Dec 2013 13:25:24 2013 (00:53) 打印特定的用户名如果你想要追踪特定的用户,你可以特别打印它。在last命令后面输入用户名。
$ last leni leni tty1 Mon Dec 2 18-42 still logged in leni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162或者你想要知道reboot何时完成,你也可以这样显示它:
$ last reboot reboot system boot Mon Dec 2 09:20 - 16:55 (07:34) reboot system boot Sun Dec 1 04:26 - 04:27 (00:01) reboot system boot Wed Nov 27 20:27 - 01:24 (04:57) reboot system boot Tue Nov 26 21:06 - 06:13 (09:06) 打印特定 / ptslast同样可以打印特定tty/pts的信息. 只要在last命令后面输入tty名字或者pty名字。
这里有一些例子:
$ last tty1 pungki tty1 Mon Dec 2 09:31 still logged in pungki tty1 Mon Dec 2 04:26 – down (00:00) pungki tty1 Mon Dec 2 04:07 – down (00:00) pungki tty1 Sun Dec 1 18:55 – 04:07 (09:12) $ last pts/0 leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53) pungki pts/0 :0.0 Wed Nov 27 20:28 – down (04:56)当你看到 down 的值 - 比如上面的第二行,它意味着用户从某个时间登录直到系统重启或关机。