last是linux的一个内置工具,可以用来查看最后登录服务器的用户。它对于追踪非常有用。

last命令显示的是来自/var/log/wtmp文件创建起,所有登录的用户。这个文件是一个二进制文件,不能直接用文本编辑器浏览,可以通过linux提供的api对其进行访问。这个是非常有用处的,因为用户不能想他们希望的那样随意的修改这个文件。

last命令会输出:已经登录的用户的用户名、登录终端、登录地址、日期、时间和用户已经登录的时间。

如果你是一个服务器管理员,你或许知道你要保护你的服务器的话,不仅是从外部,还要从内部保护。linux有一个内置工具来看到最后登陆服务器的用户,可以帮助你保护服务器。

这个命令是last。它对于追踪非常有用。让我们来看一下last可以为你做些什么。

last命令的功能是什么

last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览,比如vi、Joe或者其他软件。这是非常有用的,因为用户(或者root)不能像他们希望的那样修改这个文件。

last会给出所有已登录用户的用户名、tty、IP地址(如果用户是远程连接的话)、日期-时间和用户已经登录的时间。

如何运行last

你只要在控制台中输入last即可。这是个例子:

$ lastleni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)pungki tty1 Mon Dec 2 09:31 still logged inreboot 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 3leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)pungki tty1 Mon Dec 2 09:31 still logged inreboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)

-n 参数会使last显示从当前时间到以后的3条记录。

不显示主机名

使用 -R 参数来这么做。这里是例子 :

$ last -Rleni pts/0 Mon Dec 2 12:32 - 13:25 (00:53)pungki tty1 Mon Dec 2 09:31 still logged inreboot system boot Mon Dec 2 09:20 - 13:25 (04:05)

如你所见,现在在也没有关于主机或者IP地址的信息了。

最后一列显示主机名

要这么做,我们使用 -a参数

$ last -aleni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162pungki tty1 Mon Dec 2 09:31 still logged in :0.0reboot 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 -Fleni pts/0 10.0.76.162 Mon Dec 2 12:32:24 2013 – Mon Dec 2013 13:25:24 2013 (00:53)

打印特定的用户名

如果你想要追踪特定的用户,你可以特别打印它。在last命令后面输入用户名。

$ last lenileni tty1 Mon Dec 2 18-42 still logged inleni pts/0 Mon Dec 2 12:32 - 13:25 (00:53) 10.0.76.162

或者你想要知道reboot何时完成,你也可以这样显示它:

$ last rebootreboot 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)

打印特定 / pts

last同样可以打印特定tty/pts的信息. 只要在last命令后面输入tty名字或者pty名字。

这里有一些例子:

$ last tty1pungki tty1 Mon Dec 2 09:31 still logged inpungki 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/0leni 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 的值 - 比如上面的第二行,它意味着用户从某个时间登录直到系统重启或关机。

使用另一个文件而不是 /var/log/wtmp

默认上,last命令会从/var/log/wtmp中解析信息。如果你想要last命令从另外一个文件解析,你可以使用-f 参数。比如,当日志切割后,让我们假设切割后,之前的文件名变为/var/log/wtmp.1。那么last命令会像这样。

$ last -f /var/log/wtmp.1

显示运行级别改变

这里有个-x参数来显示运行级别。这里示例输出:

pungki tty1 Mon Dec 2 19:21 still logged inrunlevel (to lvl 3) 2.6.32-358.23.2 Mon Dec 2 19:20 – 19:29 (00:08)reboot system boot 2.6.32-358.23.2 Mon Dec 2 19:20 – 19:29 (00:08)shutdown system down 2.6.32-358.23.2 Mon Dec 2 18:56 – 19:20 (00:23)runlevel (to lvl 0) 2.6.32-358.23.2 Mon Dec 2 18:56 – 18:56 (00:00)leni tty1 Mon Dec 2 18:42 – down (00:00) 

你可以看到这里有两个运行级别。运行级别to lvl 3的条目意味着系统运行在完整的控制台模式,而没在X window或者GUI中。同时,当系统关机时,实际上是切换为运行级别0,这就是为什么last会显示to lvl 0

查看失败登录

last命令用了记录成功登录,而 lastb 命令记录失败的登录尝试。你必须拥有root权限才能运行lastb命令。这里有一个lastb命令的示例输出。lastb会解析/var/log/btmp的信息。

# lastbleni tty1 Mon Dec 2 22:12 – 22:12 (00:00)rahma tty1 Mon Dec 2 22:11 – 22:11 (00:00) 

切割日志

因为/var/log/wtmp记录每次的登录活动,文件的大小可能会快速地增长。默认上,Linux会每月切割 /var/log/wtmp/。切割的策略放在/etc/logrotate.conf 文件中。这里是我/etc/logrotate.conf*文件的内容。

/var/log/wtmp {  monthly  create 0664 root umtp  minsize 1M  rotate 1}

对于 /var/log/btmp, 这里是默认的倒换活动配置

/var/log/btmp {  missingok  monthly  create 0600 root umtp  minsize 1M  rotate 1}

你可以根据需要自己修改。

转自:http://www.lupaworld.com/article-235976-1.html

备注:last reboot显示结果

reboot  system boot 2.6.18-194.e15  Mon May 17 14:22  (33+11:23)

用户名reboot说明了是系统内置命令reboot自动启动服务器,

登录终端system boot说明了reboot是从系统引导来登录服务器的(可以这么理解),

登录地址2.6.18-194.e15说明了linux系统内核的版本。

日期Mon说明是那天是周一,

时间May 17 14:22说明了系统执行reboot的具体时间。

括号运行时间在这里的意思是,系统reboot在时间5月17号14:22重启启动到现在运行了多长时间。

如果有多行的reboot,则前面的reboot括号时间可以理解为 reboot所在行,在启动时间重启后到下次reboot运行了(多长时间)--这行最后的括号。。

也就是这次reboot后,系统重启后,服务器运行了多长时间。

linux内置的审计跟踪工具------last和lastb的更多相关文章

  1. mac内置的FTP工具

    在 Mac OS X 系统下,有不少优秀的 FTP 工具,如 Cyberduck.Transmit,但是你是否知道除了这些第三方应用,系统已经为你准备好了一个内置的 FTP 工具?/ M: e0 J% ...

  2. 卸载Linux内置的AMP软件

    卸载Linux内置的AMP软件 在安装Linux软件的LAMP环境时,必须有一个前提:必须要完全卸载掉系统内置的AMP软件. 1.卸载httpd软件(Apache) 如果在卸载软件时出现依赖关系,我们 ...

  3. bash的内置字符串处理工具

    bash内置字符串处理工具: 1.字符串切片: ${var:offset:number} 取字符串的子串: ${var:  -length} 取字符串的最右侧的length个字符.注意:冒号右侧必须有 ...

  4. JDK内置性能监测工具使用

    Java自带的性能监测工具用法简介——jstack.jconsole.jinfo.jmap.jdb.jsta.jvisualvmJDK内置工具使用 一.javah命令(C Header and Stu ...

  5. Spring中内置的一些工具类

    学习Java的人,或者开发很多项目,都需要使用到Spring 这个框架,这个框架对于java程序员来说.学好spring 就不怕找不到工作.我们时常会写一些工具类,但是有些时候 我们不清楚,我们些的工 ...

  6. Linux内置命令

    主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1 bash内置命令 ...

  7. 使用Netbeans内置的Git工具

    在 NetBeans IDE 中使用 Git 支持 NetBeans IDE 为 Git 版本控制客户端提供支持.通过利用 IDE 的 Git 支持,您可以从 IDE 内的项目中直接执行版本控制任务. ...

  8. Flask内置命令行工具—CLI

    应用发现 flask命令在Flask库安装后可使用,使用前需要正确配置FLASK_APP环境变量以告知用户程序所在位置.不同平台设置方式有所不同. Unix Bash (Linux, Mac, etc ...

  9. 页面静态化1 --- 概念(Apache内置压力测试工具使用方法)

    三个概念 ①静态网址: http://127.0.0.1/regis.html ②动态网址:在请求页面时可以动态的传一些值进去. http://127.0.0.1/regis.php?id=45&am ...

随机推荐

  1. Spring之FactoryBean

    首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混 BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂 Fa ...

  2. Linux下的文件及文件后缀名

    Linux下的文件及文件后缀名 2013-03-14 15:34 6969人阅读 评论(0) 收藏 举报 ++++++++++++++++++++++++++++++++++++++正文+++++++ ...

  3. SQLServer安装错误之--->无法打开项 UNKNOWN\Components\DA42BC89BF25F5BD0AF18C3B9B1A1EE8\c1c4f01781cc94c4c8fb1542c0981a2a

    – 错误 1402.无法打开项 UNKNOWN\Components\7ABFE44842C12B390AF18C3B9B1A1EE8\54D21D49F3A8C1C49AC11A1B6445A83E ...

  4. R语言 奇怪的NA

    > 1+NA [1] NA > NA==1 [1] NA > c(NA,1:50) [1] NA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  5. php——文件下载

    php——.doc 文件下载 先看简单实例: 同目录下有两个文件ib.php,test.php与供下载 .doc 文件: test.php文件内容: <?php $attr = glob(&qu ...

  6. git学习教程

    猴子都能懂的GIT入门 http://backlogtool.com/git-guide/cn/ 廖雪峰的Git教程 http://www.liaoxuefeng.com/wiki/001373951 ...

  7. Mac Pro 安装 最新版的 SVN 1.9.4

    系统自带的 SVN 版本为 1.7.2 $ svn --version svn, version 1.7.22 (r1694152) 有点老,安装下最新版本 brew install svn 由于老版 ...

  8. Interleaving String leetcode

    Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = ...

  9. Android学习笔记(八)——四种基本布局

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 布局是一种可用于放置很多控件的容器,它可以按照一定的规律调整内部控件的位置,或是嵌套子布局,从而编写出精美的界 ...

  10. iOS的内购

    内购: 向苹果付钱购买与APP的使用相关的产品(游戏中的道具,装备等): 苹果将收到的钱按比例,转给APP方: 不同于APP中的第三方支付(不经过苹果):