我想对一些 Unix(大多数是 Debian)系统进行指纹识别。我所说的指纹识别是指运行一个收集材料标识符、系统版本等的脚本,以便能够:
- 准确识别机器
- 区分机器的硬件和软件修改
我知道 a 可以使用几个命令来跟踪元信息,例如udev
、uname
等。
我的问题是:
- 是否有执行此类操作的软件包
- 如果不是,我必须收集什么才能准确地实现这一目标。
答案1
在 Debian 衍生系统上,硬件信息使用lshw
, hwinfo
, udevadm
, hdparm
, inxi
(这个需要先安装)等。为了准确识别机器,您可以尝试使用系统序列号、供应商、型号、网络控制器的 MAC 地址、硬盘序列号等(您只能尝试因为有些机器是虚拟的...)有一个带有屏幕截图的教程http://www.binarytides.com/linux-commands-hardware-info/一般来说,谷歌并不缺乏建议。
您可能想要记录hostname
、uname -a
、lsb-release -cdr
和/etc/machine-id
。也df
可能会派上用场。
对于已安装的软件包,请使用 dpkg-query,例如,
dpkg-query --list | grep '^ii' | awk '{print $2 " " $3 " ("$4")"}
生成一个以以下开头的列表
a11y-profile-manager-indicator 0.1.10-0ubuntu3 (amd64)
account-plugin-facebook 0.12+16.04.20160126-0ubuntu1 (all)
account-plugin-flickr 0.12+16.04.20160126-0ubuntu1 (all)
account-plugin-google 0.12+16.04.20160126-0ubuntu1 (all)
accountsservice 0.6.40-2ubuntu11.3 (amd64)
acl 2.2.52-3 (amd64)
... etc. etc. ...
其他 Linux 变体有自己的收集系统信息的机制,例如 Red Hat Enterprise Linux 具有sosreport
.
大多数(如果不是全部)专有 UNIX 系统都有专用工具来收集系统信息,包括硬件配置和安装的软件。例如,HP-UX 有一个很好的/opt/ignite/bin/print_manifest
命令。