如何检查是否有人访问了我的电脑?

我需要检查我电脑上访问的文件列表(例如:昨天的特定时间)。这可行吗?
或者
我需要检查是否有人在我离开电脑解锁的时候,在特定的时间内访问了它。
2个回答

我假设你认为你的计算机没有完全被入侵(要检查谁在运行sudo命令,请查看/var/log/auth.log)。 可以通过使用find命令快速找到不属于你用户的文件和任何文件的访问时间(对于文件使用-type f,对于目录使用-type d)。对于以下示例,我假设你从你的主目录顶层运行(只需输入cd即可进入),并且你不想搜索根目录中的文件。

1)要查找所有不属于当前登录用户的文件,请在你的主目录中键入:

find ~ -type f ! -user $USER

1.1) 要查找所有不属于任何合法用户的文件(它们不应该存在),请键入:
find ~ -type f -nouser

2) 在系统上的文件有三个时间戳,分别为 mtime(文件修改时间),ctime(inode 改变时间和权限)以及 atime(文件访问时间)。可以通过查询这些时间戳来了解文件是如何被修改的。人们经常争论应该使用其中哪一个,但最好的方法可能是使用 find 命令来搜索 atimemtime,您可以指定几天前,并且还可以使用附加的 find 选项 aminmmin,您可以指定几分钟前。
对于这些命令,使用相同的命令开关:例如,-atime 1 将匹配那些恰好在1天前被访问的文件;要指定“更多”或“更少”,请分别添加 +-。下面的示例可能会澄清所有这些(对于目录,请指定 -type d):
find ~ -type f -atime 1 
find ~ -type f -amin -23
find ~ -type f -mtime 2    
find ~ -type f -mmin -45

3) 要结合我迄今为止的方法,您可以从您的主文件夹输入以下命令:
  • 搜索您主目录中不属于$USER所有且最近两天内访问过的文件。

find ~ -type f -atime -2 ! -user $USER

  • 搜索您主目录中不属于$USER所有且最近两天内修改过的文件。

find ~ -type f -mtime -2 ! -user $USER


如果您的计算机被锁定了,那么您可以检查认证日志,该日志记录了每次登录和解锁事件的日期和时间。
没有直接的方法可以知道是否有人在访问未锁定的计算机,除非安装了一个特殊的程序来跟踪活动。但是间接的信息可以用来推断访问情况。
例如,浏览器历史通常会告诉您访问网站的时间。此外,gnome的最近访问文件将显示已打开的文件。您可以通过转到Unity的Dash菜单并在最近使用的文件部分点击展开来访问这些文件。

recently used files in unity

如果您需要一个更明确的列表(包括非 GNOME 程序访问的文件),那么我们需要编写一个简短的脚本来检测所有在怀疑的时间范围内具有访问或写入时间的文件。也许有人已经写过这样的脚本,但我从未听说过。