我想刷新我的记忆并在终端中运行命令
find / -mtime some_date -printf '%TY-%Tm-%Td %TT %p\n' 2>/dev/null | sort -r
我在输出中看到大量文件、驱动程序、进程。而且我很好奇,其中哪些是系统在没有用户参与的情况下修改的,哪些是有用户参与的?例如。
07:47:19.0000000000 /var/lib/swcatalog/icons/ubuntu-jammy-universe/*
图标(其中有几个来自不同程序)位于文件夹中,但计算机上的程序不在文件夹中。是否可以明确确认用户操作,例如安装、启动程序、删除程序或打开网站?或者例如
20:17:18.0000000000 /etc/logcheck/ignore.d.server/libsasl2-modules
20:17:18.0000000000 /usr/lib/x86_64-linux-gnu/libsasl2.so.2
并且同时有更多的司机。该链以该行结束
20:17:18.0000000000 /var/lib/dpkg/info/libsasl2-modules-db:amd64.md5sums
这里的进程的发起者是谁,是用户还是系统?等等...总的来说,我想知道通过对哪些目录\文件\进程的分析可以得出一个明确的结论:这里有一个用户。也许最好使用命令-ctime
,
-atime
以及查看哪些进程目录?也许有关于这个主题的手册?我将不胜感激任何答案。
答案1
我...老实说不完全确定什么您在这里询问,但就您提到的最后三个文件而言,很明显它们都是由同一进程同时创建/修改的 - 即安装了最新更新的进程amd64 架构版本的libsasl2-modules-db
.
(从apt show libsasl2-modules-db
:
描述:Cyrus SASL - 可插入身份验证模块 (DB)
这是 Cyrus SASL API 实现,版本 2.1。有关详细信息,请参阅包 libsasl2-2 和 RFC 2222。 。该软件包提供了 DB 插件,它支持 Berkeley DB 查找。
)
/var/lib/dpkg/info
包含各种辅助(“INFO”)文件,可帮助 dpkg 确定在安装、更新或删除给定软件包时需要做什么和/或检查。具体来说,该.md5sums
文件将包含包中每个文件的 MD5 校验和,以便 dpkg 可以验证它没有被篡改。
/etc/logcheck/ignore.d.server/
是服务的插入目录logcheck
,包可以根据需要使用该目录添加相关的配置片段;显然 libsasl2-modules-db 会生成各种系统日志信息,最好通过 logcheck 忽略这些信息,以避免过多的误报。
最后/usr/lib/x86_64-linux-gnu/libsasl2.so.2
是实际的有效负载——SASL 的共享对象库文件,它允许它与 Berkeley DB 系统交互。
所有这些都是通过安装或更新包的操作同时放置在那里的libsasl2-modules-db:amd64
。这可能是自动升级或手动操作;没有足够的信息可以说明。我建议检查/var/log/unattended-upgrades/
和 的活动/var/log/apt/
同样,/var/lib/swcatalog/icons/ubuntu-jammy-universe
当安装软件包并且将其图标添加或链接到该目录中时,该目录几乎肯定会或多或少地由软件包自动填充。
就像我在本文开头所说的那样,我不确定您在寻找什么,但是简单的“搜索整个文件系统中最近修改或添加的所有文件”命令不会有太大帮助 - 现代Linux 系统还不够静态。
如果你想做认真的取证,你就必须学会从噪声中区分信号,而唯一的方法就是了解组成系统的组件是如何工作的。