我需要检查我的计算机中访问过的文件列表(例如:昨天特定时间)。可以吗?
或者
我需要检查是否有人在特定时间内访问过我的计算机(当我将其解锁时)。
答案1
我假设您不认为您的计算机已被完全入侵(要检查谁在运行 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
搜索命令atime
和mtime
(指定几天前)以及附加find
选项amin
和mmin
(指定几分钟前)。
对于每个命令,都使用相同的命令开关:例如,-atime 1
将匹配那些被访问的文件确切地1天前;具体说明更多的或者少于,分别附加 a+
或 a -
。下面的例子可以阐明这一切(指定-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
答案2
如果您的计算机已被锁定,那么您可以检查身份验证日志,其中记录了每次登录和解锁事件的日期和时间。
如果不安装特殊程序来追踪活动,就无法直接知道某人是否访问了未锁定的计算机。但可以使用间接信息推断访问情况。
例如,浏览器历史记录通常会告诉您访问网站的时间。此外,gnome 的最近访问的文件将显示打开的文件。您可以通过转到 Unity 的 Dash 菜单并单击最近使用的文件部分的展开来访问它:
如果您需要更明确的列表(包括非 gnome 程序访问的文件),那么我们需要编写一个简短的脚本来检测所有访问或写入时间在可疑范围内的文件。也许有人已经写过这个,但我从未听说过。