登陆相关的日志涉及到系统的安全,因此是系统管理中很是重要的一部份内容。本文试图对登陆相关的日志作一个整理。vim
这是一个文本文件,记录了全部和用户认证相关的日志。不管是咱们经过 ssh 登陆,仍是经过 sudo 执行命令都会在 auth.log 中产生记录。执行 安全
$ ssh nick@myserver
上图显示日志记录了经过秘钥认证的方式登陆主机并退出的过程。服务器
再执行下面的命令试试:less
$ sudo vim /var/log/auth.log
日志一样会详细的记录本次 sudo 操做的过程。从中咱们能够看到是哪一个用户经过 sudo 执行了什么命令!ssh
这是一个二进制文件,因此不能直接经过文本编辑器查看其内容。
它记录当前登陆的每一个用户的信息。所以这个文件会随着用户登陆和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中须要查询当前用户状态的程序,如 who、w、users 等就须要访问这个文件。编辑器
这是一个二进制文件,因此不能直接经过文本编辑器查看其内容。
该日志文件永久记录每一个用户登陆、注销及系统的启动、停机的事件。所以随着系统正常运行时间的增长,该文件的大小也会愈来愈大,增长的速度取决于系统用户登陆的次数。该日志文件能够用来查看用户的登陆记录,last 命令就经过访问这个文件得到这些信息。spa
这是一个二进制文件,因此不能直接经过文本编辑器查看其内容。
这个文件记录的是全部失败的登陆尝试,使用 last 命令及其 -f 选项能够查看这个文件的内容:3d
$ sudo last -f /var/log/btmp
这是一个二进制文件,因此不能直接经过文本编辑器查看其内容。
它会记录系统中全部用户最近一次登录的信息。好比咱们经过 ssh 登陆时提示的此用户最后一次的登陆时间,就是从这个文件中取出的:日志
其实这个文件的主要使用者是 lastlog 命令。code
特别是 /var/run/utmp、/var/log/wtmp 和 /var/log/lastlog 这三个文件,它们都是日志系统中的关键文件,而且具备以下的逻辑联系:
当一个用户登陆系统时,login 程序在 lastlog 文件中查看用户的 UID。若是该用户存在,就把该用户上次登陆、注销的时间以及从哪一个主机登陆的信息写到标准输出中。而后 login 程序在 lastlog 中记录新的登陆时间,并打开 utmp 文件添加用户本次的登陆记录。接下来,login 程序打开 wtmp 文件并添加用户在 utmp 文件中的记录。当用户退出时会把更新的 utmp 文件中的记录添加到 wtmp 文件中,并从 utmp 文件中删除用户的记录。
咱们能够看到除了 auth.log 文件,其它几个文件都是二进制文件,于是不能使用 less 之类的命令直接查看。下面咱们来介绍和登陆相关的一些命令,其实它们几乎都是经过查询这些日志文件来提供信息的。
lastlog 命令用来显示系统中全部用户最近一次登录的信息:
图中显示的只是完整列表的一部分,**Never logged in** 表示该用户历来没有登录过。若是要查看某个用户的最后登录信息,可以使用 -u 选项:
其实 lastlog 命令就是从 /var/log/lastlog 文件中取出的内容。
last 命令用来显示用户最近登陆的信息。执行 last 命令,它会读取 /var/log/wtmp 文件的内容。并把该文件记录的用户登陆历史所有显示出来:
$ last
信息记录了谁在什么时间从哪里登陆了服务器,登陆了多长时间。须要注意的是系统中的 wtmp 日志文件常常会被轮转,因此有时你须要显式的指定 last 命令从哪一个文件中读取信息:
$ last -f /var/log/wtmp.1
若是咱们想快速知道系统最后一次的重启时间,可使用下面的命令:
$ last reboot
who 命令经过查询 /var/run/utmp 文件来显式系统中当前登陆的每一个用户。默认的输出包括用户名、终端类型、登陆日期及远程主机:
若是可以查询到当前登陆系统的用户都在干什么是否是一件使人很兴奋的事情呢!使用 w 命令就能够作到:
$ w
咱们能够看到用户 nick 同时登陆了两个终端,在其中一个终端中执行了 w 命令,而在另外一个终端中正经过 vim 编辑 /etc/passwd 文件!
其实 w 命令是先经过查询 utmp 文件得到当前登陆的用户,而后显示每一个用户和它所运行的进程信息。
users 命令用单独的一行打印出当前登陆的用户,每一个显示的用户名对应一个登陆会话。若是一个用户有不止一个登陆会话,那他的用户名将显示屡次:
由于 nick 经过三个终端登陆了主机,因此在同一行中名字出现了三次。
本文整理了 Ubuntu 系统中常见的一些与登陆相关的文件和命令。经过它们能够快速的查看当前用户的登陆状况和全部用户登陆登出的历史记录,而且能够查询到用户使用 root 权限执行的操做。这对咱们维护系统的安全和用户的管理都很是有帮助。