以下代码给出了所有已接受但未按用户名过滤掉的内容
sudo cat /var/log/auth.log | grep Accepted
答案1
将用户名添加到 grep 模式中?
# grep -e "Accepted .* for root " /var/log/auth.log
May 3 23:09:01 lumi sshd[21046]: Accepted publickey for root from 1.2.3.4 port 44308 ssh2
May 6 21:25:20 lumi sshd[6642]: Accepted publickey for root from 1.2.3.4 port 44556 ssh2
或者使用last
,它读取/var/log/wtmp
,其中包含已启动会话的日志。请注意,非交互式会话不存储在这里。
# last root
root pts/38 somehost.somewhere Sat May 6 21:25 still logged in
root pts/3 somehost.somewhere Wed May 3 23:09 - 23:09 (00:00)
至少这些日志的位置可能是特定于系统/发行版的。
但是,由于我们正在讨论 root 登录,因此最好注意任何具有 root 权限的人都可以编辑日志以隐藏其登录,因此,如果您这样做是为了审核,那么您必须记录到外部系统。
答案2
也许最后一个命令可以帮助您列出 root 登录名?在此示例中,最后一个命令显示 root 在 1 月 11 日星期三使用伪终端 3 (pts/3) 从 IP 地址 10.1.57.140 的计算机登录。虽然最后一个命令没有明确说明 SSH,但 pts/3 可能是强烈表明连接是使用 SSH 建立的。
[root@server1 ~]# last
john.doe pts/0 server1.example.com Thu Jan 12 12:04 still logged in
root pts/3 10.1.57.140 Wed Jan 11 12:54 - 13:13 (00:19)
reboot system boot 3-10-0-327.e17.x Wed Jan 11 12:52 - 13:10 (00:01)
. . .